expectations 1.2.0 → 1.2.1
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/README +23 -32
- data/lib/expectations/recorded_expectation.rb +4 -0
- data/rakefile.rb +1 -4
- data/test/expectations/suite_test.rb +9 -0
- metadata +32 -31
data/README
CHANGED
@@ -45,17 +45,17 @@ expectations can be used for state based and behavior based testing.
|
|
45
45
|
require File.dirname(__FILE__) + "/test_helper"
|
46
46
|
|
47
47
|
Expectations do
|
48
|
-
|
48
|
+
|
49
49
|
# State based expectation where a value equals another value
|
50
50
|
expect 2 do
|
51
51
|
1 + 1
|
52
52
|
end
|
53
|
-
|
53
|
+
|
54
54
|
# State based expectation where an exception is expected. Simply expect the Class of the intended exception
|
55
55
|
expect NoMethodError do
|
56
56
|
Object.no_method
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
# Behavior based test using a traditional mock
|
60
60
|
expect mock.to.receive(:dial).with("2125551212").times(2) do |phone|
|
61
61
|
phone.dial("2125551212")
|
@@ -78,34 +78,22 @@ expectations can be used for state based and behavior based testing.
|
|
78
78
|
expect Object.to.receive(:deal) do
|
79
79
|
Object.deal
|
80
80
|
end
|
81
|
-
|
81
|
+
|
82
82
|
# State based test utilizing a stub
|
83
83
|
expect 2 do
|
84
84
|
stub(:two => 2).two
|
85
85
|
end
|
86
|
-
|
87
|
-
# State based test utilizing a concrete mock
|
88
|
-
expect 2 do
|
89
|
-
Object.expects(:bar).returns 2
|
90
|
-
Object.bar
|
91
|
-
end
|
92
|
-
|
93
|
-
# Behavior based test utilizing a stub and a concrete mock
|
94
|
-
expect 1 do
|
95
|
-
Object.expects(:give_me_three).with(3).returns 1
|
96
|
-
Object.give_me_three(stub(:three=>3).three)
|
97
|
-
end
|
98
|
-
|
86
|
+
|
99
87
|
# State based test matching a Regexp
|
100
88
|
expect /a string/ do
|
101
89
|
"a string"
|
102
90
|
end
|
103
|
-
|
91
|
+
|
104
92
|
# State based test checking if actual is in the expected Range
|
105
93
|
expect 1..5 do
|
106
94
|
3
|
107
95
|
end
|
108
|
-
|
96
|
+
|
109
97
|
# State based test to determine if the object is an instance of the module
|
110
98
|
expect Enumerable do
|
111
99
|
[]
|
@@ -115,33 +103,33 @@ expectations can be used for state based and behavior based testing.
|
|
115
103
|
expect String do
|
116
104
|
"a string"
|
117
105
|
end
|
118
|
-
|
106
|
+
|
119
107
|
# State based test to determine if the modules are the same
|
120
108
|
expect Enumerable do
|
121
109
|
Enumerable
|
122
110
|
end
|
123
|
-
|
111
|
+
|
124
112
|
# State based test to determine if the classes are the same
|
125
113
|
expect String do
|
126
114
|
String
|
127
115
|
end
|
128
|
-
|
116
|
+
|
129
117
|
# State based test with XML strings, whitespace between tags is ignored
|
130
118
|
expect xml("<a><foo>bar</foo></a>") do
|
131
119
|
"<a>\n\t<foo>bar</foo> \n</a>"
|
132
120
|
end
|
133
|
-
|
121
|
+
|
134
122
|
# State based test with XML strings, whitespace between tags is ignored
|
135
123
|
expect xml(<<-eos) do
|
136
124
|
<one>
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
125
|
+
<two>
|
126
|
+
<three>4</three>
|
127
|
+
<five> 6 </five>
|
128
|
+
</two>
|
141
129
|
</one>
|
142
130
|
eos
|
143
131
|
"<one><two><three>4</three>
|
144
|
-
|
132
|
+
<five> 6 </five>
|
145
133
|
</two></one>"
|
146
134
|
end
|
147
135
|
|
@@ -155,7 +143,7 @@ expectations can be used for state based and behavior based testing.
|
|
155
143
|
expect klass.new.to.delegate(:save).to(:record) do |instance|
|
156
144
|
instance.save(1)
|
157
145
|
end
|
158
|
-
|
146
|
+
|
159
147
|
# this is normally defined in the file specific to the class
|
160
148
|
klass = Class.new do
|
161
149
|
attr_accessor :started
|
@@ -164,7 +152,7 @@ expectations can be used for state based and behavior based testing.
|
|
164
152
|
expect klass.new.to.be.started do |process|
|
165
153
|
process.started = true
|
166
154
|
end
|
167
|
-
|
155
|
+
|
168
156
|
# this is normally defined in the file specific to the class
|
169
157
|
klass = Class.new do
|
170
158
|
attr_accessor :finished
|
@@ -173,9 +161,12 @@ expectations can be used for state based and behavior based testing.
|
|
173
161
|
expect klass.new.to.have.finished do |process|
|
174
162
|
process.finished = true
|
175
163
|
end
|
176
|
-
|
164
|
+
|
165
|
+
expect nil.to.be.nil?
|
166
|
+
expect Object.not.to.be.nil?
|
167
|
+
|
177
168
|
end
|
178
169
|
|
179
170
|
== Contributors
|
180
171
|
|
181
|
-
Matt Mower, Ola Bini, George Malamidis, Brian Guthrie, Philippe Hanrigou, Steve McLarnon, Rubikitch
|
172
|
+
Matt Mower, Ola Bini, George Malamidis, Brian Guthrie, Philippe Hanrigou, Steve McLarnon, Rubikitch, Subhash Gupta, Holger Kohnen
|
@@ -6,6 +6,10 @@ module Expectations::RecordedExpectation
|
|
6
6
|
warn_for_expects do
|
7
7
|
instance_exec(expected.subject, &block) if block
|
8
8
|
end
|
9
|
+
if expected.subject.is_a?(Mocha::Mock) &&
|
10
|
+
!Mocha::Mockery.instance.mocks.include?(expected.subject)
|
11
|
+
Mocha::Mockery.instance.__send__(:add_mock, expected.subject)
|
12
|
+
end
|
9
13
|
if expected.verify! && mocha_verify
|
10
14
|
self.extend(Expectations::Results::Fulfilled)
|
11
15
|
else
|
data/rakefile.rb
CHANGED
@@ -26,7 +26,6 @@ task :readme do
|
|
26
26
|
%x[erb README_TEMPLATE > README]
|
27
27
|
end
|
28
28
|
|
29
|
-
|
30
29
|
desc "Upload RDoc to RubyForge"
|
31
30
|
task :publish_rdoc do
|
32
31
|
Rake::Task[:readme].invoke
|
@@ -34,8 +33,6 @@ task :publish_rdoc do
|
|
34
33
|
Rake::SshDirPublisher.new("jaycfields@rubyforge.org", "/var/www/gforge-projects/expectations", "doc").upload
|
35
34
|
end
|
36
35
|
|
37
|
-
Gem::manage_gems
|
38
|
-
|
39
36
|
specification = Gem::Specification.new do |s|
|
40
37
|
s.name = "expectations"
|
41
38
|
s.summary = "A lightweight unit testing framework. Tests (expectations) will be written as follows
|
@@ -46,7 +43,7 @@ specification = Gem::Specification.new do |s|
|
|
46
43
|
expect NoMethodError do
|
47
44
|
Object.invalid_method_call
|
48
45
|
end."
|
49
|
-
s.version = "1.2.
|
46
|
+
s.version = "1.2.1"
|
50
47
|
s.author = 'Jay Fields'
|
51
48
|
s.description = "A lightweight unit testing framework. Tests (expectations) will be written as follows
|
52
49
|
expect 2 do
|
@@ -20,6 +20,15 @@ Expectations do
|
|
20
20
|
suite.execute(Silent).succeeded?
|
21
21
|
end
|
22
22
|
|
23
|
+
expect false do
|
24
|
+
suite = Expectations::Suite.new
|
25
|
+
suite.expect(true) { true }
|
26
|
+
suite.expect suite.mock.to.receive(:some_method) do |some_mock|
|
27
|
+
# some_method is not called
|
28
|
+
end
|
29
|
+
suite.execute(Silent).succeeded?
|
30
|
+
end
|
31
|
+
|
23
32
|
expect Mocha::Mock do
|
24
33
|
Expectations::Suite.new.mock
|
25
34
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: expectations
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jay Fields
|
@@ -9,11 +9,12 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2009-04-22 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: mocha
|
17
|
+
type: :runtime
|
17
18
|
version_requirement:
|
18
19
|
version_requirements: !ruby/object:Gem::Requirement
|
19
20
|
requirements:
|
@@ -30,43 +31,43 @@ extensions: []
|
|
30
31
|
extra_rdoc_files:
|
31
32
|
- README
|
32
33
|
files:
|
34
|
+
- lib/expectations.rb
|
35
|
+
- lib/expectations/range.rb
|
36
|
+
- lib/expectations/reverse_result.rb
|
33
37
|
- lib/expectations/blank_slate.rb
|
34
|
-
- lib/expectations/delegate_recorder.rb
|
35
|
-
- lib/expectations/expectation.rb
|
36
|
-
- lib/expectations/mock_recorder.rb
|
37
|
-
- lib/expectations/module.rb
|
38
38
|
- lib/expectations/object.rb
|
39
|
-
- lib/expectations/
|
40
|
-
- lib/expectations/
|
41
|
-
- lib/expectations/recorder.rb
|
42
|
-
- lib/expectations/regexp.rb
|
39
|
+
- lib/expectations/mock_recorder.rb
|
40
|
+
- lib/expectations/suite_runner.rb
|
43
41
|
- lib/expectations/results.rb
|
44
|
-
- lib/expectations/
|
45
|
-
- lib/expectations/
|
46
|
-
- lib/expectations/state_based_expectation.rb
|
47
|
-
- lib/expectations/state_based_recorder.rb
|
48
|
-
- lib/expectations/string.rb
|
42
|
+
- lib/expectations/xml_string.rb
|
43
|
+
- lib/expectations/expectation.rb
|
49
44
|
- lib/expectations/suite.rb
|
45
|
+
- lib/expectations/state_based_recorder.rb
|
46
|
+
- lib/expectations/state_based_expectation.rb
|
47
|
+
- lib/expectations/recorded_expectation.rb
|
48
|
+
- lib/expectations/standard_error.rb
|
50
49
|
- lib/expectations/suite_results.rb
|
51
|
-
- lib/expectations/
|
52
|
-
- lib/expectations/
|
53
|
-
- lib/expectations.rb
|
50
|
+
- lib/expectations/recorder.rb
|
51
|
+
- lib/expectations/delegate_recorder.rb
|
52
|
+
- lib/expectations/module.rb
|
53
|
+
- lib/expectations/string.rb
|
54
|
+
- lib/expectations/regexp.rb
|
55
|
+
- test/failures_test.rb
|
56
|
+
- test/silent.rb
|
57
|
+
- test/test_helper.rb
|
58
|
+
- test/successes_test.rb
|
59
|
+
- test/expectations/regexp_test.rb
|
60
|
+
- test/expectations/suite_runner_test.rb
|
54
61
|
- test/expectations/expectation_test.rb
|
55
|
-
- test/expectations/
|
56
|
-
- test/expectations/module_test.rb
|
62
|
+
- test/expectations/string_test.rb
|
57
63
|
- test/expectations/object_test.rb
|
64
|
+
- test/expectations/expectations_test.rb
|
65
|
+
- test/expectations/xml_string_test.rb
|
58
66
|
- test/expectations/range_test.rb
|
59
|
-
- test/expectations/regexp_test.rb
|
60
|
-
- test/expectations/results_test.rb
|
61
|
-
- test/expectations/string_test.rb
|
62
|
-
- test/expectations/suite_results_test.rb
|
63
|
-
- test/expectations/suite_runner_test.rb
|
64
67
|
- test/expectations/suite_test.rb
|
65
|
-
- test/expectations/
|
66
|
-
- test/
|
67
|
-
- test/
|
68
|
-
- test/successes_test.rb
|
69
|
-
- test/test_helper.rb
|
68
|
+
- test/expectations/suite_results_test.rb
|
69
|
+
- test/expectations/results_test.rb
|
70
|
+
- test/expectations/module_test.rb
|
70
71
|
- rakefile.rb
|
71
72
|
- README
|
72
73
|
has_rdoc: true
|
@@ -95,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
96
|
requirements: []
|
96
97
|
|
97
98
|
rubyforge_project: expectations
|
98
|
-
rubygems_version: 1.
|
99
|
+
rubygems_version: 1.3.1
|
99
100
|
signing_key:
|
100
101
|
specification_version: 2
|
101
102
|
summary: A lightweight unit testing framework. Tests (expectations) will be written as follows expect 2 do 1 + 1 end expect NoMethodError do Object.invalid_method_call end.
|