nakajima-nest-unit 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/nest-unit.rb +12 -0
  2. data/test/nest-unit_test.rb +57 -1
  3. metadata +1 -1
data/lib/nest-unit.rb CHANGED
@@ -5,6 +5,10 @@ class Test::Unit::TestCase
5
5
  define_method("test_" + name.gsub(/[^\w]/, '_'), &block)
6
6
  end unless respond_to?(:test)
7
7
 
8
+ def self.helper(name, &block)
9
+ define_method(name, &block)
10
+ end unless respond_to?(:helper)
11
+
8
12
  class Context
9
13
  attr_reader :parent_context
10
14
 
@@ -12,6 +16,10 @@ class Test::Unit::TestCase
12
16
  @test_case, @name, @parent_context = test_case, name, parent_context
13
17
  end
14
18
 
19
+ def helper(name, &block)
20
+ define_method(name, &block)
21
+ end
22
+
15
23
  def before(&block)
16
24
  block_given? ? (@before = block) : @before
17
25
  end
@@ -45,6 +53,10 @@ class Test::Unit::TestCase
45
53
  end
46
54
  end
47
55
 
56
+ def method_missing(sym, *args, &block)
57
+ @test_case.send(sym, *args, &block)
58
+ end
59
+
48
60
  private
49
61
 
50
62
  def parent_name
@@ -11,7 +11,11 @@ class ContextTest < Test::Unit::TestCase
11
11
  stub(callable).call!
12
12
  stub(callable).called? { false }
13
13
  end
14
-
14
+
15
+ helper :helped? do
16
+ true
17
+ end
18
+
15
19
  test "has test helper" do
16
20
  assert true
17
21
  end
@@ -19,6 +23,58 @@ class ContextTest < Test::Unit::TestCase
19
23
  test "doesn't have before" do
20
24
  assert !callable.called?
21
25
  end
26
+
27
+ test "has helper helper" do
28
+ assert helped?
29
+ end
30
+
31
+ context "with a helper method" do
32
+ helper :overrideable do
33
+ :outside
34
+ end
35
+
36
+ helper :do_something do
37
+ :ok
38
+ end
39
+
40
+ helper :returner do |arg|
41
+ arg
42
+ end
43
+
44
+ test "can access top level helper methods" do
45
+ assert helped?
46
+ end
47
+
48
+ test "can access helper methods" do
49
+ assert_equal :ok, do_something
50
+ end
51
+
52
+ test "can take a block" do
53
+ assert_equal :ok, returner(:ok)
54
+ end
55
+
56
+ context "with an inner helper method" do
57
+ helper :overrideable do
58
+ :inside
59
+ end
60
+
61
+ helper :do_something_else do
62
+ :also_ok
63
+ end
64
+
65
+ test "can access helper methods" do
66
+ assert_equal :also_ok, do_something_else
67
+ end
68
+
69
+ test "can override helpers" do
70
+ assert_equal :inside, overrideable
71
+ end
72
+
73
+ test "can access outer helper methods" do
74
+ assert_equal [:ok, :also_ok], [do_something, do_something_else]
75
+ end
76
+ end
77
+ end
22
78
 
23
79
  context "within a context block" do
24
80
  before do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nakajima-nest-unit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pat Nakajima