""" The doctest module uses class and method documentation to run unit tests on your code. The doctest module reads the coding documentation you've created and uses that same documentation to conduct unit tests. This helps ensure the documentation is accurate and creates a one stop destination for documentation and unit tests. """ class ExampleClass(object): """ Example class that has one working method. >>> ec = ExampleClass() >>> ec.example(10) 19 >>> ec = ExampleClass() >>> ec.example(0) -1 # non int parameters should # return nothing >>> ec = ExampleClass() >>> ec.example("apple") >>> ec = ExampleClass() >>> ec.a = 3 >>> ec.example(10) 30 """ def __init__(self): self.a = 2 self.b = -1 def example(self, n): try: n = int(n) except ValueError: return None return n * self.a + self.b if __name__ == '__main__': # more about doctest features import doctest doctest.testmod() # this outputs: # nothing at all # if no errors are found then doctest doesn't complain # If you were to change some of the expected values in the # documention....for instance... the last example: # >>> ec = ExampleClass() # >>> ec.a = 3 # >>> ec.example(10) # 29 # and change the expected response to 30 # # # the output would be: # ********************************************************************** # File "C:\python\docstringexample.py", line 27, in __main__.ExampleClass # Failed example: # ec.example(10) # Expected: # 30 # Got: # 29 # ********************************************************************** # 1 items had failures: # 1 of 9 in __main__.ExampleClass # ***Test Failed*** 1 failures.
A python example based blog that shows how to accomplish python goals and how to correct python errors.
Saturday, October 3, 2009
Python - create unit tests and ensure accurate documentation with doctest
Labels:
class,
doctest,
documentation,
python,
unit test
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment