tdoc 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +14 -2
- data/bin/tdoc.rb +12 -13
- metadata +1 -1
data/README.rdoc
CHANGED
@@ -12,13 +12,25 @@ Tdoc combines rdoc, test::unit and shoulda, and concepts from rubytestdoc.
|
|
12
12
|
- tdoc_context
|
13
13
|
- tdoc_setup
|
14
14
|
- examples
|
15
|
+
- within each examples block, Tdoc will convert cut and pastes from irb into assert_equal blocks, so
|
16
|
+
>> "asdf"
|
17
|
+
=> "asdf"
|
18
|
+
turns into:
|
19
|
+
assert_equal "asdf","asdf"
|
20
|
+
Tdoc will then include all assertions within the context created from the example block
|
15
21
|
|
16
22
|
tdoc_require: rubygems
|
17
23
|
|
18
|
-
examples:
|
24
|
+
examples: simple irb with 1 assertion
|
19
25
|
|
20
26
|
>> "asdf"
|
21
|
-
|
27
|
+
=> "asdf"
|
28
|
+
>> x="foo"
|
29
|
+
=> "foo"
|
30
|
+
>> x
|
31
|
+
=> "foo"
|
32
|
+
assert_raise ZeroDivisionError do; 1/0 ;end
|
33
|
+
|
22
34
|
|
23
35
|
usage:
|
24
36
|
|
data/bin/tdoc.rb
CHANGED
@@ -18,20 +18,19 @@ def mk_context(file,test_case=nil)
|
|
18
18
|
directives=text.scan(/#{LINST}tdoc_(.+?):\s*(.+)/).inject({}) {|h,d| h[d[0].to_sym]||=[];h[d[0].to_sym] << d[1];h}
|
19
19
|
directives[:require].to_a.each {|r| require r}
|
20
20
|
directives[:context].to_a.each {|c| mk_context "#{TEST_DIR}#{c}", test_case}
|
21
|
-
tests=text.split(/#{LINST}[Ee]xamples
|
22
|
-
|
21
|
+
tests=text.split(/#{LINST}[Ee]xamples?:/).to_a[1..-1].to_a.map do |test|
|
22
|
+
test.gsub!(/#{LINST}>>\s*(.+)\n#{LINST}=>\s*(.+)/) {|m| "assert_equal #{$1}, #{$2}"}
|
23
|
+
lines=test.split(/\n/)
|
24
|
+
test_text=lines.map {|l| l.match(/#{LINST}(assert.+)/) && $1}.compact.join ";"
|
25
|
+
[lines[0], test_text]
|
23
26
|
end
|
24
|
-
test_case.
|
25
|
-
|
26
|
-
setup
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
test[1].each do |assertion|
|
32
|
-
assert_equal eval(assertion[0]), eval(assertion[1])
|
33
|
-
end
|
34
|
-
end
|
27
|
+
test_case.context test_name do
|
28
|
+
setup do
|
29
|
+
eval directives[:setup].to_a.join ';'
|
30
|
+
end
|
31
|
+
tests.each do |test|
|
32
|
+
should test[0] do
|
33
|
+
eval test[1]
|
35
34
|
end
|
36
35
|
end
|
37
36
|
end
|