muack 1.5.0 → 1.5.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.
- checksums.yaml +4 -4
- data/CHANGES.md +7 -0
- data/lib/muack/mock.rb +7 -1
- data/lib/muack/version.rb +1 -1
- data/muack.gemspec +3 -3
- data/test/test_keyargs.rb +49 -0
- data/test/test_mock.rb +24 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 77dfffce2bb5df1930472ff39a8280bd9a1a69f6e81d1f0173d02099b5cdeaf9
|
4
|
+
data.tar.gz: aabb83e37e3ae995c02ad1ba1e938866cd3e036fa8a3f7682273a80255c60f90
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 01e57727b0e41455e69a5c4f0f6552b14d1efc192b08435d4b154abe68d86bf62e058cc54196ca05fb1519a301ae7c4fd3bc9924e25a2036c44d1b5a3c3a7843
|
7
|
+
data.tar.gz: 2324f6b087b7d79c46c5727078fce53a2f178ff8474bbed48af3750e447ad6e16168b788d148ca3c3a347a6a11ac578b923aa5effeb81013a9ab5e159d5508e3
|
data/CHANGES.md
CHANGED
data/lib/muack/mock.rb
CHANGED
@@ -246,7 +246,13 @@ module Muack
|
|
246
246
|
::Kernel.instance_method(:method).bind(object).call(method_name).
|
247
247
|
super_method
|
248
248
|
|
249
|
-
super_method &&
|
249
|
+
if super_method.owner == ::Class && super_method.name == :new
|
250
|
+
initialize_method = ::Class.instance_method(:instance_method).
|
251
|
+
bind(object).call(:initialize)
|
252
|
+
__mock_block_with_kargs?(initialize_method)
|
253
|
+
else
|
254
|
+
super_method && __mock_block_with_kargs?(super_method)
|
255
|
+
end
|
250
256
|
end
|
251
257
|
|
252
258
|
def __mock_block_with_kargs? block
|
data/lib/muack/version.rb
CHANGED
data/muack.gemspec
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
# stub: muack 1.5.
|
2
|
+
# stub: muack 1.5.1 ruby lib
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "muack".freeze
|
6
|
-
s.version = "1.5.
|
6
|
+
s.version = "1.5.1"
|
7
7
|
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
9
9
|
s.require_paths = ["lib".freeze]
|
10
10
|
s.authors = ["Lin Jen-Shin (godfat)".freeze]
|
11
|
-
s.date = "2020-
|
11
|
+
s.date = "2020-12-06"
|
12
12
|
s.description = "Muack -- A fast, small, yet powerful mocking library.\n\nInspired by [RR][], and it's 32x times faster (750s vs 23s) than RR\nfor running [Rib][] tests.\n\n[RR]: https://github.com/rr/rr\n[Rib]: https://github.com/godfat/rib".freeze
|
13
13
|
s.email = ["godfat (XD) godfat.org".freeze]
|
14
14
|
s.files = [
|
data/test/test_keyargs.rb
CHANGED
@@ -108,4 +108,53 @@ describe Muack::Mock do
|
|
108
108
|
expect(Obj.say(a: 0)).eq(Obj.object_id)
|
109
109
|
end
|
110
110
|
end
|
111
|
+
|
112
|
+
describe 'proxy new' do
|
113
|
+
would 'handle initialize via ordinal new' do
|
114
|
+
kargs_initialize = Class.new do
|
115
|
+
def initialize a:
|
116
|
+
@a = a
|
117
|
+
end
|
118
|
+
attr_reader :a
|
119
|
+
end
|
120
|
+
|
121
|
+
mock(kargs_initialize).new(a: 0)
|
122
|
+
|
123
|
+
expect(kargs_initialize.new(a: 0).a).eq(0)
|
124
|
+
end
|
125
|
+
|
126
|
+
would 'handle overridden new without keyword arguments' do
|
127
|
+
kargs_initialize = Class.new do
|
128
|
+
def initialize a:
|
129
|
+
@a = a
|
130
|
+
end
|
131
|
+
attr_reader :a
|
132
|
+
|
133
|
+
def self.new a
|
134
|
+
super(a: a)
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
mock(kargs_initialize).new(0)
|
139
|
+
|
140
|
+
expect(kargs_initialize.new(0).a).eq(0)
|
141
|
+
end
|
142
|
+
|
143
|
+
would 'handle overridden new with keyword arguments' do
|
144
|
+
kargs_initialize = Class.new do
|
145
|
+
def initialize a
|
146
|
+
@a = a
|
147
|
+
end
|
148
|
+
attr_reader :a
|
149
|
+
|
150
|
+
def self.new a:
|
151
|
+
super(a)
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
mock(kargs_initialize).new(a: 0)
|
156
|
+
|
157
|
+
expect(kargs_initialize.new(a: 0).a).eq(0)
|
158
|
+
end
|
159
|
+
end
|
111
160
|
end
|
data/test/test_mock.rb
CHANGED
@@ -102,6 +102,30 @@ describe Muack::Mock do
|
|
102
102
|
Muack.verify.should.eq true
|
103
103
|
obj.f .should.eq 0
|
104
104
|
end
|
105
|
+
|
106
|
+
describe 'not affect the original module' do
|
107
|
+
would 'with include' do
|
108
|
+
m = Module.new{ def f; :f; end }
|
109
|
+
c0 = Class.new{ include m }.new
|
110
|
+
c1 = Class.new{ include m }.new
|
111
|
+
|
112
|
+
mock(c0).f{:g}
|
113
|
+
|
114
|
+
expect(c0.f).eq :g
|
115
|
+
expect(c1.f).eq :f
|
116
|
+
end
|
117
|
+
|
118
|
+
would 'with prepend' do
|
119
|
+
m = Module.new{ def f; :f; end }
|
120
|
+
c0 = Class.new{ prepend m }.new
|
121
|
+
c1 = Class.new{ prepend m }.new
|
122
|
+
|
123
|
+
mock(c0).f{:g}
|
124
|
+
|
125
|
+
expect(c0.f).eq :g
|
126
|
+
expect(c1.f).eq :f
|
127
|
+
end
|
128
|
+
end
|
105
129
|
end
|
106
130
|
|
107
131
|
describe 'Muack.verify==false' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: muack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lin Jen-Shin (godfat)
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-12-06 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: |-
|
14
14
|
Muack -- A fast, small, yet powerful mocking library.
|