clean_test 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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