Running nosetests -s
for
class TestTemp():
def __init__(self):
print '__init__'
self.even = 0
def setup(self):
print '__setup__'
self.odd = 1
def test_even(self):
print 'test_even'
even_number = 10
assert even_number % 2 == self.even
def test_odd(self):
print 'test_odd'
odd_number = 11
assert odd_number % 2 == self.odd
prints out the following.
__init__
__init__
__setup__
test_even
.__setup__
test_odd
.
The test instances are created before tests are run, while setup runs right before the test.
For the general case, __init__()
and setup() accomplish the same thing, but is there a downside for using __init__()
instead of setup()? Or using both?
While __init__
may work as a replacement for setUp
, you should stick to setUp
because it is part of the stylized protocol for writing tests. It also has a counterpart, tearDown
, which __init__
does not, as well as class- and module-level counterparts which __init__
does not.
Writing test classes is different than writing normal classes, so you should stick to the style used to write test classes.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With