blob: c415a527e170b9bf950f55c1f343ec6dcb625ddd (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
This file should ultimately be replaced by a series of tests, something like a lint tool.
- all describes and its should use single quotes unless they have nested quotes.
- object instantiation in tests for all objects that are not the SUT should be manufactured in a before
- 'should' and other counterfactuals/subjunctive forms should not be used in tests
- no doubles should be used except for behaviorist testing
- behaviorist testing is desirable only when interacting with the database or the session
- when unit testing, always demonstrate behavior by using a real world example (as in, a public use of the API), so as to provide documentation.
- use collect rather than map
- jargon:
- 'obtains' is preferred to 'returns true'
- 'manufactures'
- in tests
- when manufacturing expected values (right-hand-side of should), avoid convenience methods -- construct it by initializing the object directly (Foo.new(...)). This ensures equality expectations in tests are rigorous.
- the SUT should be manufactured inline inside the test, not in a before
- dependencies for the SUT should be manufactured using convenience methods (or whatever is most terse).
- group conceptually related methods in a class within an inline module; immediately include that module.
|