मैं पाइथन सीख रहा हूं और पाइथन के unittest
मॉड्यूल के विवरण के बारे में और अधिक समझने की कोशिश कर रहा हूं। प्रलेखन निम्नलिखित शामिल हैं:पायथन के साथ, मैं "कॉल करने योग्य ऑब्जेक्ट जो टेस्ट सूट देता है" कैसे बना और उपयोग कर सकता हूं?
चल परीक्षण की आसानी के लिए, जैसा कि हम बाद में देखेंगे, यह एक अच्छा विचार है एक प्रतिदेय उद्देश्य यह है कि पहले से बने परीक्षण, प्रत्येक परीक्षा मॉड्यूल में प्रदान करने के लिए सूट:
def suite(): suite = unittest.TestSuite() suite.addTest(WidgetTestCase('testDefaultSize')) suite.addTest(WidgetTestCase('testResize')) return suite
जहां तक मेरा बता सकते हैं, ऐसा करने का उद्देश्य नहीं समझाया गया है। इसके अलावा, मैं यह समझने में असमर्थ था कि कोई इस तरह की विधि का उपयोग कैसे करेगा। मैं सफलता के बिना कई बातें करने की कोशिश की (एक तरफ त्रुटि संदेश मुझे मिल गया के बारे में सीखने से):
import unittest
def average(values):
return sum(values)/len(values)
class MyTestCase(unittest.TestCase):
def testFoo(self):
self.assertEqual(average([10,100]),55)
def testBar(self):
self.assertEqual(average([11]),11)
def testBaz(self):
self.assertEqual(average([20,20]),20)
def suite():
suite = unittest.TestSuite()
suite.addTest(MyTestCase('testFoo'))
suite.addTest(MyTestCase('testBar'))
suite.addTest(MyTestCase('testBaz'))
return suite
if __name__ == '__main__':
# s = MyTestCase.suite()
# TypeError: unbound method suite() must be called
# with MyTestCase instance as first argument
# s = MyTestCase.suite(MyTestCase())
# ValueError: no such test method in <class '__main__.MyTestCase'>: runTest
# s = MyTestCase.suite(MyTestCase('testFoo'))
# TypeError: suite() takes no arguments (1 given)
"काम" निम्नलिखित लेकिन अजीब लगता है और यह आवश्यक है कि मैं 'def suite(self):
' के लिए suite()
की विधि हस्ताक्षर बदल जाते हैं।
s = MyTestCase('testFoo').suite()
unittest.TextTestRunner().run(s)