Writing unit tests
From Simson Garfinkel
Jump to navigationJump to search
Information on writing unit tests, from the Internet:
Key Concepts
- Smallest testable unit
- Test Cases
- Test Discovery
- Test Coverage
- Test Driven Development / Test First Programming / Test First Development
- Turning bugs into test cases
- Integration Testing / Test on commit
General Guidance
- When you write a function, immediately write the test. (Or, better, write the test before you write the function).
- If function A creates a data object and then calls function B, which does something to the data object and then calls function C, it may be difficult to generate a test for each function. This may indicate that you should refactor your program. For example, you may wish to create a new class, AA, which has different methods for different data functions. You can then write tests for each of these methods.
Testing Python with py.test
- Use pytest for Python unit tests. It's the best developed test framework, and widely supported.
- Introduction to pytest, by Brian Okken, who wrote the book "Python Testing with pytest"
- Brian Okken's python testing blog and podcast
- 2005 article on Python unit testing with py.test
- Tutorial on fixtures and unit-testing with semaphore
- TutorialsPoint on pytest
- StackOverflow questions on py.test