With those concepts in mind, let's see how we can actually use the unittest module in practice. For this example, we'll use test-driven development to write a simple text-analysis function. This function will take a file name as its only parameter. It will then read that file and calculate:
- The number of lines in the file
- The number of characters in the file
TDD is an iterative development process, so rather than work at the REPL we'll put the code for our tests in a file named text_analyzer.py
. To start with, we'll create our first test with just enough supporting code to actually run it:
# text_analyzer.py import unittest class TextAnalysisTests(unittest.TestCase): """Tests for the ``analyze_text()`` function.""" def test_function_runs(self): """Basic smoke test: does the function run.""" analyze_text() if __name__ == '__main__': unittest.main()
Ths first thing we do is import the unittest
module. We then create our test case...