clean_test 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +6 -0
- data/.rvmrc +1 -0
- data/.travis.yml +12 -0
- data/Gemfile +3 -0
- data/LICENSE.txt +201 -0
- data/README.rdoc +343 -0
- data/Rakefile +29 -0
- data/clean_test.gemspec +25 -0
- data/lib/clean_test/any.rb +169 -0
- data/lib/clean_test/given_when_then.rb +186 -0
- data/lib/clean_test/test_case.rb +32 -0
- data/lib/clean_test/test_that.rb +65 -0
- data/lib/clean_test/version.rb +5 -0
- data/test/bootstrap.rb +5 -0
- data/test/test_any.rb +144 -0
- data/test/test_circle.rb +17 -0
- data/test/test_simple_given.rb +107 -0
- data/test/test_test_that.rb +35 -0
- metadata +114 -0
@@ -0,0 +1,107 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'clean_test/test_case'
|
3
|
+
|
4
|
+
class TestSimpleGiven < Clean::Test::TestCase
|
5
|
+
|
6
|
+
def test_basics
|
7
|
+
Given {
|
8
|
+
@x = nil
|
9
|
+
}
|
10
|
+
And {
|
11
|
+
@y = nil
|
12
|
+
@z = 10
|
13
|
+
}
|
14
|
+
When {
|
15
|
+
@x = 4
|
16
|
+
}
|
17
|
+
And {
|
18
|
+
@y = 10
|
19
|
+
}
|
20
|
+
But {
|
21
|
+
@z # not assigned
|
22
|
+
}
|
23
|
+
Then {
|
24
|
+
assert_equal 4,@x
|
25
|
+
}
|
26
|
+
And {
|
27
|
+
assert_equal 10,@y
|
28
|
+
}
|
29
|
+
But {
|
30
|
+
assert_equal 10,@z
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_mock_support
|
35
|
+
Given { @x = 4 }
|
36
|
+
When the_test_runs
|
37
|
+
Then { }
|
38
|
+
Given { @y = 4 }
|
39
|
+
When { @y = 10 }
|
40
|
+
Then { assert_equal 10,@y }
|
41
|
+
And mocks_shouldve_been_called
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_cannot_use_locals
|
45
|
+
Given {
|
46
|
+
@x = nil
|
47
|
+
}
|
48
|
+
When {
|
49
|
+
x = 4
|
50
|
+
}
|
51
|
+
Then {
|
52
|
+
assert_nil @x
|
53
|
+
refute defined? x
|
54
|
+
}
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_can_reuse_blocks
|
58
|
+
invocations = 0
|
59
|
+
x_is_nil = Given {
|
60
|
+
@x = nil
|
61
|
+
invocations += 1
|
62
|
+
}
|
63
|
+
x_is_assigned_to_four = When {
|
64
|
+
@x = 4
|
65
|
+
invocations += 1
|
66
|
+
}
|
67
|
+
x_should_be_four = Then {
|
68
|
+
assert_equal 4,@x
|
69
|
+
invocations += 1
|
70
|
+
}
|
71
|
+
Given x_is_nil
|
72
|
+
When x_is_assigned_to_four
|
73
|
+
Then x_should_be_four
|
74
|
+
assert_equal 6,invocations
|
75
|
+
end
|
76
|
+
|
77
|
+
def test_methods_that_return_blocks
|
78
|
+
Given a_nil_x
|
79
|
+
When {
|
80
|
+
@x = 4
|
81
|
+
}
|
82
|
+
Then {
|
83
|
+
assert_equal 4,@x
|
84
|
+
}
|
85
|
+
end
|
86
|
+
|
87
|
+
def test_invert_for_block_based_asserts
|
88
|
+
Given a_nil_x
|
89
|
+
Then {
|
90
|
+
assert_raises NoMethodError do
|
91
|
+
When {
|
92
|
+
@x + 4
|
93
|
+
}
|
94
|
+
end
|
95
|
+
}
|
96
|
+
end
|
97
|
+
|
98
|
+
private
|
99
|
+
|
100
|
+
def a_nil_x
|
101
|
+
Proc.new { @x = nil }
|
102
|
+
end
|
103
|
+
|
104
|
+
def refute(bool_expr)
|
105
|
+
assert !bool_expr
|
106
|
+
end
|
107
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'clean_test/test_case'
|
3
|
+
|
4
|
+
class TestSimpleGiven < Clean::Test::TestCase
|
5
|
+
|
6
|
+
test_that "when assigning @x to 4, it is 4" do
|
7
|
+
Given {
|
8
|
+
@x = nil
|
9
|
+
}
|
10
|
+
When {
|
11
|
+
@x = 4
|
12
|
+
}
|
13
|
+
Then {
|
14
|
+
assert_equal 4,@x
|
15
|
+
}
|
16
|
+
end
|
17
|
+
|
18
|
+
test_that {
|
19
|
+
Given {
|
20
|
+
@x = nil
|
21
|
+
}
|
22
|
+
When {
|
23
|
+
@x = 4
|
24
|
+
}
|
25
|
+
Then {
|
26
|
+
assert_equal 4,@x
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
def test_that_test_that_barfs_with_no_block
|
31
|
+
assert_raises RuntimeError do
|
32
|
+
self.class.test_that "foo"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
metadata
ADDED
@@ -0,0 +1,114 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: clean_test
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.10.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- David Copeland
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-01-18 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: faker
|
16
|
+
requirement: &70203919977400 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70203919977400
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rdoc
|
27
|
+
requirement: &70203919976980 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70203919976980
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rake
|
38
|
+
requirement: &70203919976560 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70203919976560
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: simplecov
|
49
|
+
requirement: &70203919976140 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70203919976140
|
58
|
+
description: You can easily make your plain Ruby Test::Unit test cases clean and clear
|
59
|
+
with Given/When/Then, placeholder values, and textual descriptions without resorting
|
60
|
+
to metaprogramming or complex frameworks. Use as much or as little as you like
|
61
|
+
email:
|
62
|
+
- davetron5000@gmail.com
|
63
|
+
executables: []
|
64
|
+
extensions: []
|
65
|
+
extra_rdoc_files: []
|
66
|
+
files:
|
67
|
+
- .gitignore
|
68
|
+
- .rvmrc
|
69
|
+
- .travis.yml
|
70
|
+
- Gemfile
|
71
|
+
- LICENSE.txt
|
72
|
+
- README.rdoc
|
73
|
+
- Rakefile
|
74
|
+
- clean_test.gemspec
|
75
|
+
- lib/clean_test/any.rb
|
76
|
+
- lib/clean_test/given_when_then.rb
|
77
|
+
- lib/clean_test/test_case.rb
|
78
|
+
- lib/clean_test/test_that.rb
|
79
|
+
- lib/clean_test/version.rb
|
80
|
+
- test/bootstrap.rb
|
81
|
+
- test/test_any.rb
|
82
|
+
- test/test_circle.rb
|
83
|
+
- test/test_simple_given.rb
|
84
|
+
- test/test_test_that.rb
|
85
|
+
homepage: ''
|
86
|
+
licenses: []
|
87
|
+
post_install_message:
|
88
|
+
rdoc_options: []
|
89
|
+
require_paths:
|
90
|
+
- lib
|
91
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
92
|
+
none: false
|
93
|
+
requirements:
|
94
|
+
- - ! '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
99
|
+
requirements:
|
100
|
+
- - ! '>='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
requirements: []
|
104
|
+
rubyforge_project: clean_test
|
105
|
+
rubygems_version: 1.8.10
|
106
|
+
signing_key:
|
107
|
+
specification_version: 3
|
108
|
+
summary: Clean up your Test::Unit tests
|
109
|
+
test_files:
|
110
|
+
- test/bootstrap.rb
|
111
|
+
- test/test_any.rb
|
112
|
+
- test/test_circle.rb
|
113
|
+
- test/test_simple_given.rb
|
114
|
+
- test/test_test_that.rb
|