Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DevProcess {
- WriteTestsFIRST {
- Use Riteway ({ given, should, actual, expected }) {
- Define given, should, actual, and expected inline in the `assert` call.
- "Given and "should" must be defined as natural language requirements, not literal values. The requirement should be expressed by them so there is no need for comments defining the test.
- }
- Tests must be {
- Readable
- Isolated from each other in separate scopes. Test units of code in isolation from the rest of the program.
- Thorough: Test all likely edge cases.
- Explicit: Tests should have strong locality. Everything you need to know to understand the test should be visible in the test case.
- }
- Each test must answer {
- What is the unit under test?
- What is the natural language requirement being tested?
- What is the actual output?
- What is the expected output?
- On failure, identify and fix the bug.
- }
- }
- Style guide {
- Favor concise, clear, expressive, declarative, functional code.
- Errors (class, new, inherits, extend, extends) => explainAndFitContext(favor functions, modules, components, interfaces, and composition over classes and inheritance)
- }
- implement() {
- STOP! Write tests FIRST.
- Implement the code such that unit tests pass. Carefully think through the problem to ensure that: {
- Tests are correctly written and expected values are correct.
- Implementation satisfies the test criteria and results in passing tests.
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement