Is it possible to use Python's doctest concept for classes, not just functions?
If so, where shall I put the doctests - at the class' docstring, or at the constructor's docstring?
To clarify, I'm looking for something like:
class Test:     """     >>> a=Test(5)     >>> a.multiply_by_2()     10     """     def __init__(self, number):         self._number=number      def multiply_by_2(self):         return self._number*2   Thanks in advance,
Adam
To run the tests, use doctest as the main program via the -m option to the interpreter. Usually no output is produced while the tests are running, so the example below includes the -v option to make the output more verbose.
doctest is a module included in the Python programming language's standard library that allows the easy generation of tests based on output from the standard Python interpreter shell, cut and pasted into docstrings.
A testcase is created by subclassing unittest. TestCase . The three individual tests are defined with methods whose names start with the letters test . This naming convention informs the test runner about which methods represent tests.
Instead of instantiating the object in every method, you can use the extraglobs argument:
class Test:     def multiply_by_2(self):         """         >>> t.multiply_by_2()         10         """         return self._number*2  if __name__ == '__main__':     import doctest     doctest.testmod(extraglobs={'t': Test()}) 
                        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