Non-test methods in a Python TestCase
I believe that you don't have to do anything. Your helper methods should just not start with test_
.
The only methods that unittest will execute [1] are setUp
, anything that starts with test
, and tearDown
[2], in that order. You can make helper methods and call them anything except for those three things, and they will not be executed by unittest.
You can think of setUp
as __init__
: if you're generating mock objects that are used by multiple tests, create them in setUp
.
def setUp(self):
self.mock_obj = MockObj()
[1]: This is not entirely true, but these are the main 3 groups of methods that you can concentrate on when writing tests.
[2]: For legacy reasons, unittest will execute both test_foo
and testFoo
, but test_foo
is the preferred style these days. setUp
and tearDown
should appear as such.
The test runner will only directly execute methods beginning with test
, so just make sure your helper methods' names don't begin with test
.