aboutsummaryrefslogtreecommitdiffstats
path: root/CONVENTIONS
diff options
context:
space:
mode:
authorNick Kallen <nkallen@nick-kallens-computer-2.local>2008-03-16 17:49:06 -0700
committerNick Kallen <nkallen@nick-kallens-computer-2.local>2008-03-16 17:49:06 -0700
commitcae95fc02af1fff885dca4a29b2fd3711b809cab (patch)
treee177c3721d20596b4cc60e336b0999060e6e82a6 /CONVENTIONS
parent2d3681bb3c9ed8136fc46857828b74ae39b6d990 (diff)
downloadrails-cae95fc02af1fff885dca4a29b2fd3711b809cab.tar.gz
rails-cae95fc02af1fff885dca4a29b2fd3711b809cab.tar.bz2
rails-cae95fc02af1fff885dca4a29b2fd3711b809cab.zip
projections now support string passthrough
- there is a weird inconsistency in where bind is called on values; this needs to be resolved
Diffstat (limited to 'CONVENTIONS')
-rw-r--r--CONVENTIONS17
1 files changed, 17 insertions, 0 deletions
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