How to parameterize unittests

Ben Finney ben+python at benfinney.id.au
Fri Apr 15 04:35:04 EDT 2016


Antoon Pardon <antoon.pardon at rece.vub.ac.be> writes:
> But the tests, at this moment, are not written to instantiate
> self.tree but to call avltree directly.

That is exactly what the ‘TestCase.setUp’ method is for: to have the
test case class specify how its test cases will customise themselves.
 class AVLTree_TestCase(unittest.TestCase):
 tree = AVLTree
 def setUp(self):
 super().setUp()
 self.test_instance = self.tree()
 def test_empty_tree_is_false(self):
 self.assertFalse(self.test_instance)
 class LoremIpsumAVLTree_TestCase(AVLTree_TestCase):
 tree = LoremIpsumAVLTree
 class DolorSitAmetAVLTree_TestCase(AVLTree_TestCase):
 tree = DolorSitAmetAVLTree
By not overriding ‘setUp’, the same routine will be called in the
subclass's instance also.
> So I have to rewrite these tests.

Yes, you'll need to consider inheritance and how the ‘unittest’ API
supports it.
-- 
 \ “Faith, n. Belief without evidence in what is told by one who |
 `\ speaks without knowledge, of things without parallel.” —Ambrose |
_o__) Bierce, _The Devil's Dictionary_, 1906 |
Ben Finney


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /