How To Unittest Unittest TestCases
I have a unittest.TestCase child, which defines several domain specific assert Checks. I would like to run some unittests to unittest this functionality to control that everything
Solution 1:
Not sure if there's anything Jython specific that would break this, but I would do something like this:
import StringIO
import unittest
# The TestCase subclass to test
class MyBaseTestCase(unittest.TestCase):
def assertSpec(self, thing):
assert thing == 123
# The testcase for MyBaseTestCase
class TestMyTest(unittest.TestCase):
def test_assetSpec(self):
"""Ensure assertSpec works
"""
class _TestSpec(MyBaseTestCase):
def test_failure_case(self):
self.assertSpec(121)
def test_success_case(self):
self.assertSpec(123)
# Load tests from _TestSpec
loader = unittest.TestLoader()
suite = loader.loadTestsFromTestCase(_TestSpec)
# Create runner, and run _TestSpec
io = StringIO.StringIO()
runner = unittest.TextTestRunner(stream = io)
results = runner.run(suite)
# Should be one failed test, and one passed test
self.assertEquals(results.testsRun, 2)
self.assertEquals(len(results.failures), 1)
if __name__ == "__main__":
unittest.main()
Post a Comment for "How To Unittest Unittest TestCases"