???????????????????????????????????????????????????£???unittest????????????

 

import random
import unittest
class TestSequenceFunctions(unittest.TestCase):
def setUp(self):
self.seq = range(10)
def test_shuffle(self):
# make sure the shuffled sequence does not lose any elements
random.shuffle(self.seq)
self.seq.sort()
self.assertEqual(self.seq?? range(10))
# should raise an exception for an immutable sequence
self.assertRaises(TypeError?? random.shuffle?? (1??2??3))
def test_choice(self):
element = random.choice(self.seq)
self.assertTrue(element in self.seq)
def test_sample(self):
with self.assertRaises(ValueError):
random.sample(self.seq?? 20)
for element in random.sample(self.seq?? 5):
self.assertTrue(element in self.seq)
if __name__ == '__main__':
unittest.main()

????TestSequenceFunctions?????unittest.TestCase????д??setUp()?????????????????????'test'???????????????TestSequenceFunctions?????????????????????????????????????????????????????????????????????????????TestCase?????????????????????????????????test_*()????????????????????????????????????????ЩTestLoader????μ????????????????????????loader.TestLoader?????????loadTestsFromTestCase()??????
def loadTestsFromTestCase(self?? testCaseClass):

 

"""Return a suite of all tests cases contained in testCaseClass"""
if issubclass(testCaseClass?? suite.TestSuite):
raise TypeError("Test cases should not be derived from TestSuite."
" Maybe you meant to derive from TestCase?")
testCaseNames = self.getTestCaseNames(testCaseClass)
if not testCaseNames and hasattr(testCaseClass?? 'runTest'):
testCaseNames = ['runTest']
loaded_suite = self.suiteClass(map(testCaseClass?? testCaseNames))
return loaded_suite

????getTestCaseNames()???TestCase???????????????“test”?????????????????9?У??????TestSuite????????????????????map??????????testCaseNames?е????????????testCaseClass??乹??????????????TestCase????????????????????????????????

 

testcases = []
for name in testCaeNames:
testcases.append(TestCase(name))
loaded_suite = self.suiteClass(tuple(testcases))

?????????????????test??????????????乹???????TestCase???????????????????ж???test??????????????????????д??????????runTest??????У?????????runTest????????TestCase?????????????test???????????????runTest??????
?????????????????????????test????????????????乹??TestCase????????TestSequenceFunctions?????????????????TestCase???????д?????????????????????????????????fixture???????????????????????????д?????TestCase????????к??????????
????????????Щ???????????????????????????????в???????????????????????????????ɡ?