Writing tests for nose2
Apart from picking up the existing tests written with the unittest
module and running them, nose2 also supports new ways of writing tests.
To start with, nose2 allows tests to be regular functions. We don't need to create a class and inherit it from any base class. As long as the function starts with the word test
, it is considered a test and executed.
We can take the following test:
class StockTest(unittest.TestCase): def setUp(self): self.goog = Stock("GOOG") def test_price_of_a_new_stock_class_should_be_None(self): self.assertIsNone(self.goog.price)
And write the above test as follows:
def test_price_of_a_new_stock_class_should_be_None(): goog = Stock("GOOG") assert goog.price is None
As we can see, writing tests this way reduces some of the boilerplate code that we had to do before:
We no longer have to create a class to hold the tests in
We no longer have to inherit from any base class
We don't even have to import the
unittest
module
We...