Patterns¶
Patterns¶
- Use N function for unit tests (not integration tests) for the main model.
- Use G function instead of N for shelving configurations. It helps to identify errors.
- Use ignore_fields option to deal with fields filled by listeners.
- Use custom values for unsupported fields.
- Use default lesson for unsupported fields with a custom function that generated data.
- Use fill_nullable_fields for unsupported nullable fields.
- Use fk_min_depth option to test trees.
- [Automated Test Patterns](http://www.teses.usp.br/teses/disponiveis/45/45134/tde-02042012-120707/pt-br.php) (in Portuguese)
Anti-Patterns¶
- Using auto generated data in an assertion method.
- Shelving a static value for a field with unique=True. Raise an error.
- Overriding a lesson Copier with None.
- Using Copier to fix a bad design of the code.
- Too many named lessons configurations.
- Mix data fixture algorithms in the same test suite.
- Use default and custom lessons to avoid fixing a messy architecture.
- Extensive use of global set up: setup suite (from DDF), setup module and setup class (from unittest2).
A good automated test¶
- Simple
- Legible
- Repeatable
- Independent
- Isolated
- Useful
- Unique
- Accurate
- Professional
- Fast