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.
@@ -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