lookout 2.2.0 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +8 -1
- data/lib/lookout/expectation.rb +5 -1
- data/lib/lookout/version.rb +1 -1
- data/test/unit/examples.rb +6 -0
- data/test/unit/lookout/expectation.rb +8 -0
- metadata +21 -19
data/README
CHANGED
@@ -259,7 +259,14 @@
|
|
259
259
|
s.a + s.b
|
260
260
|
end
|
261
261
|
|
262
|
-
|
262
|
+
Blocks are also allowed:
|
263
|
+
|
264
|
+
expect 3 do
|
265
|
+
s = stub(:a => proc{ |a, b| a + b })
|
266
|
+
s.a(1, 2)
|
267
|
+
end
|
268
|
+
|
269
|
+
If need be, we can stub out a specific method on an object:
|
263
270
|
|
264
271
|
expect 'def' do
|
265
272
|
a = 'abc'
|
data/lib/lookout/expectation.rb
CHANGED
@@ -28,7 +28,11 @@ module Lookout::Expectation
|
|
28
28
|
when Hash
|
29
29
|
Lookout::Stub::Object.new.tap{ |stub|
|
30
30
|
args[0].each do |name, value|
|
31
|
-
|
31
|
+
if value.respond_to? :to_proc
|
32
|
+
@stubs.define(stub, name, &value)
|
33
|
+
else
|
34
|
+
@stubs.define(stub, name){ value }
|
35
|
+
end
|
32
36
|
end
|
33
37
|
}
|
34
38
|
else
|
data/lib/lookout/version.rb
CHANGED
data/test/unit/examples.rb
CHANGED
@@ -146,6 +146,12 @@ Expectations do
|
|
146
146
|
s.a + s.b
|
147
147
|
end
|
148
148
|
|
149
|
+
# Use a stub that’s set up with a set of procs as methods.
|
150
|
+
expect 3 do
|
151
|
+
s = stub(:a => proc{ |a, b| a + b })
|
152
|
+
s.a(1, 2)
|
153
|
+
end
|
154
|
+
|
149
155
|
# Use a contrete mock to verify that a method is called.
|
150
156
|
expect Object.to.receive.deal do
|
151
157
|
Object.deal
|
@@ -36,4 +36,12 @@ Expectations do
|
|
36
36
|
expect Lookout::Results::Fulfilled do
|
37
37
|
Lookout::Expectation.on([1, 2, 3].to.include?(1), nil, nil).evaluate
|
38
38
|
end
|
39
|
+
|
40
|
+
expect Lookout::Results::Fulfilled do
|
41
|
+
Lookout::Expectation.on(1, nil, nil){ stub(:a => 1).a }.evaluate
|
42
|
+
end
|
43
|
+
|
44
|
+
expect Lookout::Results::Fulfilled do
|
45
|
+
Lookout::Expectation.on(1, nil, nil){ stub(:a => proc{ 1 }).a }.evaluate
|
46
|
+
end
|
39
47
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lookout
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-10-
|
12
|
+
date: 2011-10-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: yard
|
16
|
-
requirement: &
|
16
|
+
requirement: &14532168 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: 0.6.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *14532168
|
25
25
|
description: ! " Lookout\n\n Lookout is a lightweight
|
26
26
|
unit testing framework. Tests (expectations) can be\n written as follows\n\n expect
|
27
27
|
2 do\n 1 + 1\n end\n\n expect NoMethodError do\n Object.invalid_method_call\n
|
@@ -116,21 +116,23 @@ description: ! " Lookout\n\n Lookout is a lightw
|
|
116
116
|
stub.to.receive.dial('2125551212').twice do |phone|\n phone.dial('2125551212')\n
|
117
117
|
\ phone.hangup\n phone.dial('2125551212')\n end\n\n We
|
118
118
|
can also use stubs without any expectations on them:\n\n expect 3 do\n s
|
119
|
-
= stub(:a => 1, :b => 2)\n s.a + s.b\n end\n\n
|
120
|
-
|
121
|
-
\
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
\
|
119
|
+
= stub(:a => 1, :b => 2)\n s.a + s.b\n end\n\n Blocks are also
|
120
|
+
allowed:\n\n expect 3 do\n s = stub(:a => proc{ |a, b| a + b })\n
|
121
|
+
\ s.a(1, 2)\n end\n\n If need be, we can stub out a specific
|
122
|
+
method on an object:\n\n expect 'def' do\n a = 'abc'\n stub(a).to_str{
|
123
|
+
'def' }\n a.to_str\n end\n\n You don’t have to use a mock object
|
124
|
+
to verify that a method is called:\n\n expect Object.to.receive.deal do\n
|
125
|
+
\ Object.deal\n end\n\n As you have figured out by now, the
|
126
|
+
expected method call is set up by\n calling ‹#receive› after ‹#to›. ‹#Receive›
|
127
|
+
is followed by a call to the\n method to expect with any expected arguments.
|
128
|
+
\ The body of the mocked\n method can be given as the block to the method.
|
129
|
+
\ Finally, an expected\n invocation count may follow the method. Let’s look
|
130
|
+
at this formal\n specification in more detail.\n\n The expected method
|
131
|
+
arguments may be given in a variety of ways. Let’s\n introduce them by giving
|
132
|
+
some examples:\n\n expect mock.to.receive.a do |m|\n …\n end\n\n
|
133
|
+
\ Here, the method ‹#a› must be called with any number of arguments. It\n may
|
134
|
+
be called any number of times, but it must be called at least once.\n\n If
|
135
|
+
a method must receive exactly one argument, you can use ‹arg›:\n\n expect
|
134
136
|
mock.to.receive.a(arg) do |m|\n …\n end\n\n If a method must
|
135
137
|
receive a specific argument, you can use that argument:\n\n expect mock.to.receive.a(1..2)
|
136
138
|
do |m|\n …\n end\n\n The same matching rules apply for arguments
|