mocoso 0.1.1 → 0.1.2
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.
- checksums.yaml +4 -4
- data/lib/mocoso.rb +11 -4
- data/mocoso.gemspec +1 -1
- data/test/scary_mocks_and_nice_stubs.rb +7 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 035dcbfe0eaab282c1c61619e0fc79ba30cbdf79
|
4
|
+
data.tar.gz: 80e2a9211e3259a74ac859aa42bded85b7fdf9f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2a16d9f8df3110a1096a1de5ab7d5af509cad145ff98e53ba2945d5b2d4613efed33f06ce277ac952f06fb01657f20339c17dd62a6c82e0d6841ac61fc9f751
|
7
|
+
data.tar.gz: 9ca6b09b6ac4e72432ae10b8a3a4ac40644f33704eb8ff52b2b21f6fc04fd133ce275fb2d50ec1a447b257d233d522471f30bdee21b868cfc16a4c0098e54c43
|
data/lib/mocoso.rb
CHANGED
@@ -84,16 +84,22 @@ module Mocoso
|
|
84
84
|
# Mocoso.stub Object.new, undefined: nil
|
85
85
|
# # => NameError: undefined method `undefined' for class `Object'
|
86
86
|
#
|
87
|
+
# The same thing happens if a stubbed method is not invoked:
|
88
|
+
#
|
89
|
+
# Mocoso.stub subject, :foo, 'value' do
|
90
|
+
# end
|
91
|
+
# # => Expected method foo not invoked
|
92
|
+
#
|
87
93
|
def stub object, method, result, &block
|
88
94
|
metaclass = object.singleton_class
|
89
95
|
stubbed_method = "__mocoso_#{method}"
|
96
|
+
invoked = false
|
90
97
|
|
91
98
|
metaclass.send :alias_method, stubbed_method, method
|
92
99
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
metaclass.send(:define_method, method) { result }
|
100
|
+
metaclass.send :define_method, method do |*args|
|
101
|
+
invoked = true
|
102
|
+
result.respond_to?(:call) ? result.call(*args) : result
|
97
103
|
end
|
98
104
|
|
99
105
|
begin
|
@@ -102,6 +108,7 @@ module Mocoso
|
|
102
108
|
metaclass.send :undef_method, method
|
103
109
|
metaclass.send :alias_method, method, stubbed_method
|
104
110
|
metaclass.send :undef_method, stubbed_method
|
111
|
+
raise "Expected method #{method} not invoked" if !invoked
|
105
112
|
end
|
106
113
|
end
|
107
114
|
|
data/mocoso.gemspec
CHANGED
@@ -80,3 +80,10 @@ test 'expectation with multiple arguments' do |subject|
|
|
80
80
|
assert_equal 'new foo', subject.foo('new foo', optional: true)
|
81
81
|
end
|
82
82
|
end
|
83
|
+
|
84
|
+
test 'raises error if stubbed method is never invoked' do |subject|
|
85
|
+
assert_raise {
|
86
|
+
stub subject, :foo, 'value' do
|
87
|
+
end
|
88
|
+
}
|
89
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mocoso
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Francesco Rodríguez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-10-
|
11
|
+
date: 2013-10-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cutest
|