From cae95fc02af1fff885dca4a29b2fd3711b809cab Mon Sep 17 00:00:00 2001 From: Nick Kallen Date: Sun, 16 Mar 2008 17:49:06 -0700 Subject: projections now support string passthrough - there is a weird inconsistency in where bind is called on values; this needs to be resolved --- CONVENTIONS | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 CONVENTIONS (limited to 'CONVENTIONS') diff --git a/CONVENTIONS b/CONVENTIONS new file mode 100644 index 0000000000..0d7c1b4ef0 --- /dev/null +++ b/CONVENTIONS @@ -0,0 +1,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 is 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. \ No newline at end of file -- cgit v1.2.3