minitest-mock_expectations 1.1.1 → 1.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/.github/workflows/ci.yml +22 -0
- data/CHANGELOG.md +6 -0
- data/Gemfile.lock +3 -3
- data/LICENSE.txt +1 -1
- data/README.md +32 -0
- data/lib/minitest/mock_expectations/assertions.rb +24 -1
- data/lib/minitest/mock_expectations/version.rb +1 -1
- data/test/minitest/mock_expectations/assertions_test.rb +62 -10
- metadata +4 -4
- data/.travis.yml +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2adcab05aae81e343becab28c6f8c3181f92d81294de224656ea678cf96004d5
|
4
|
+
data.tar.gz: 2fe148fee3686d80e0509a5711f523aa5b407b7fd929e4719fef734972943a4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 236932920587374d39cc3837c54db5a9bb5464c86c45375152975cf95f72b6e7128ca6ec4617a682952b1f27360e545b7b22a18c524d2fa14dbdddcdcbc3c1d8
|
7
|
+
data.tar.gz: 3ef5fcf49a4b74aa1eb5f0d3427e37bad70a12c80591f79661291c9df3517eda76689732b327c0024930a2adb13f7067e0afadfdbcb1833eb84582851fdd2e31
|
@@ -0,0 +1,22 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on: [push]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
build:
|
7
|
+
runs-on: ubuntu-latest
|
8
|
+
strategy:
|
9
|
+
matrix:
|
10
|
+
ruby: [2.5.x, 2.6.x, 2.7.x]
|
11
|
+
steps:
|
12
|
+
- uses: actions/checkout@v2
|
13
|
+
- name: Set up Ruby
|
14
|
+
uses: actions/setup-ruby@v1
|
15
|
+
with:
|
16
|
+
ruby-version: ${{ matrix.ruby }}
|
17
|
+
- name: Install dependencies
|
18
|
+
run: |
|
19
|
+
gem install bundler
|
20
|
+
bundle install
|
21
|
+
- name: Run tests
|
22
|
+
run: bundle exec rake test
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
minitest-mock_expectations (1.1.
|
4
|
+
minitest-mock_expectations (1.1.2)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
9
|
minitest (5.11.3)
|
10
|
-
rake (
|
10
|
+
rake (12.3.3)
|
11
11
|
|
12
12
|
PLATFORMS
|
13
13
|
ruby
|
@@ -19,4 +19,4 @@ DEPENDENCIES
|
|
19
19
|
rake
|
20
20
|
|
21
21
|
BUNDLED WITH
|
22
|
-
2.
|
22
|
+
2.1.2
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -136,6 +136,38 @@ assert_called_with(@post, :add_comment, [["Thanks for sharing this."], ["Thanks!
|
|
136
136
|
end
|
137
137
|
```
|
138
138
|
|
139
|
+
```ruby
|
140
|
+
assert_called_with(@post, :add_comment, [["Thanks for sharing this."]]) do
|
141
|
+
@post.add_comment(["Thanks for sharing this."])
|
142
|
+
end
|
143
|
+
```
|
144
|
+
|
145
|
+
```ruby
|
146
|
+
assert_called_with(@post, :add_comment, [["Thanks for sharing this.", "Thanks!"]]) do
|
147
|
+
@post.add_comment(["Thanks for sharing this.", "Thanks!"])
|
148
|
+
end
|
149
|
+
```
|
150
|
+
|
151
|
+
```ruby
|
152
|
+
assert_called_with(@post, :add_comment, [["Thanks for sharing this."], {body: "Thanks!"}]) do
|
153
|
+
@post.add_comment(["Thanks for sharing this."], {body: "Thanks!"})
|
154
|
+
end
|
155
|
+
```
|
156
|
+
|
157
|
+
```ruby
|
158
|
+
assert_called_with(@post, :add_comment, [[["Thanks for sharing this."]], [{body: "Thanks!"}]]) do
|
159
|
+
@post.add_comment(["Thanks for sharing this."])
|
160
|
+
@post.add_comment({body: "Thanks!"})
|
161
|
+
end
|
162
|
+
```
|
163
|
+
|
164
|
+
```ruby
|
165
|
+
assert_called_with(@post, :add_comment, [[["Thanks for sharing this."]], [["Thanks!"]]]) do
|
166
|
+
@post.add_comment(["Thanks for sharing this."])
|
167
|
+
@post.add_comment(["Thanks!"])
|
168
|
+
end
|
169
|
+
```
|
170
|
+
|
139
171
|
### assert_called_on_instance_of(klass, method_name, message = nil, times: 1, returns: nil)
|
140
172
|
|
141
173
|
Asserts that the method will be called on an instance of the `klass` in the block
|
@@ -98,10 +98,33 @@ module Minitest
|
|
98
98
|
# @post.add_comment("Thanks for sharing this.")
|
99
99
|
# @post.add_comment("Thanks!")
|
100
100
|
# end
|
101
|
+
#
|
102
|
+
# assert_called_with(@post, :add_comment, [["Thanks for sharing this."]]) do
|
103
|
+
# @post.add_comment(["Thanks for sharing this."])
|
104
|
+
# end
|
105
|
+
#
|
106
|
+
# assert_called_with(@post, :add_comment, [["Thanks for sharing this.", "Thanks!"]]) do
|
107
|
+
# @post.add_comment(["Thanks for sharing this.", "Thanks!"])
|
108
|
+
# end
|
109
|
+
#
|
110
|
+
# assert_called_with(@post, :add_comment, [["Thanks for sharing this."], {body: "Thanks!"}]) do
|
111
|
+
# @post.add_comment(["Thanks for sharing this."], {body: "Thanks!"})
|
112
|
+
# end
|
113
|
+
#
|
114
|
+
# assert_called_with(@post, :add_comment, [[["Thanks for sharing this."]], [{body: "Thanks!"}]]) do
|
115
|
+
# @post.add_comment(["Thanks for sharing this."])
|
116
|
+
# @post.add_comment({body: "Thanks!"})
|
117
|
+
# end
|
118
|
+
#
|
119
|
+
# assert_called_with(@post, :add_comment, [[["Thanks for sharing this."]], [["Thanks!"]]]) do
|
120
|
+
# @post.add_comment(["Thanks for sharing this."])
|
121
|
+
# @post.add_comment(["Thanks!"])
|
122
|
+
# end
|
123
|
+
#
|
101
124
|
def assert_called_with(object, method_name, arguments, returns: nil)
|
102
125
|
mock = Minitest::Mock.new
|
103
126
|
|
104
|
-
if arguments.all? { |argument| argument.is_a?(Array) }
|
127
|
+
if arguments.size > 1 && arguments.all? { |argument| argument.is_a?(Array) }
|
105
128
|
arguments.each { |argument| mock.expect(:call, returns, argument) }
|
106
129
|
else
|
107
130
|
mock.expect(:call, returns, arguments)
|
@@ -56,7 +56,7 @@ class Minitest::MockExpectations::AssertionsTest < Minitest::Test
|
|
56
56
|
assert_equal "What is new in Rails 6.0", @post.title
|
57
57
|
end
|
58
58
|
|
59
|
-
def
|
59
|
+
def test_assert_called_failure_because_method_has_not_been_called
|
60
60
|
error = assert_raises(Minitest::Assertion) do
|
61
61
|
assert_called(@post, :title) do
|
62
62
|
@post.body
|
@@ -66,7 +66,18 @@ class Minitest::MockExpectations::AssertionsTest < Minitest::Test
|
|
66
66
|
assert_equal "Expected title to be called 1 times, but was called 0 times.\nExpected: 1\n Actual: 0", error.message
|
67
67
|
end
|
68
68
|
|
69
|
-
def
|
69
|
+
def test_assert_called_failure_because_method_has_been_called_more_than_expected_times
|
70
|
+
error = assert_raises(Minitest::Assertion) do
|
71
|
+
assert_called(@post, :title) do
|
72
|
+
@post.title
|
73
|
+
@post.title
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
assert_equal "Expected title to be called 1 times, but was called 2 times.\nExpected: 1\n Actual: 2", error.message
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_assert_called_failure_with_message
|
70
81
|
error = assert_raises(Minitest::Assertion) do
|
71
82
|
assert_called(@post, :title, "Message") do
|
72
83
|
@post.body
|
@@ -82,7 +93,7 @@ class Minitest::MockExpectations::AssertionsTest < Minitest::Test
|
|
82
93
|
end
|
83
94
|
end
|
84
95
|
|
85
|
-
def
|
96
|
+
def test_refute_called_failure_because_method_has_been_called
|
86
97
|
error = assert_raises(Minitest::Assertion) do
|
87
98
|
refute_called(@post, :add_comment) do
|
88
99
|
@post.add_comment("Thanks for sharing this.")
|
@@ -92,7 +103,7 @@ class Minitest::MockExpectations::AssertionsTest < Minitest::Test
|
|
92
103
|
assert_equal "Expected add_comment to be called 0 times, but was called 1 times.\nExpected: 0\n Actual: 1", error.message
|
93
104
|
end
|
94
105
|
|
95
|
-
def
|
106
|
+
def test_refute_called_failure_with_message
|
96
107
|
error = assert_raises(Minitest::Assertion) do
|
97
108
|
refute_called(@post, :title, "Message") do
|
98
109
|
@post.title
|
@@ -120,7 +131,7 @@ class Minitest::MockExpectations::AssertionsTest < Minitest::Test
|
|
120
131
|
assert_equal "Thank you!", @post.add_comment("Thanks for sharing this.")
|
121
132
|
end
|
122
133
|
|
123
|
-
def
|
134
|
+
def test_assert_called_with_failure_because_method_has_not_been_called_with_expected_arguments
|
124
135
|
assert_raises(MockExpectationError) do
|
125
136
|
assert_called_with(@post, :add_comment, ["Thanks for sharing this."]) do
|
126
137
|
@post.add_comment("Thanks")
|
@@ -135,6 +146,36 @@ class Minitest::MockExpectations::AssertionsTest < Minitest::Test
|
|
135
146
|
end
|
136
147
|
end
|
137
148
|
|
149
|
+
def test_assert_called_with_an_array_as_expected_argument
|
150
|
+
assert_called_with(@post, :add_comment, [["Thanks for sharing this."]]) do
|
151
|
+
@post.add_comment(["Thanks for sharing this."])
|
152
|
+
end
|
153
|
+
|
154
|
+
assert_called_with(@post, :add_comment, [["Thanks for sharing this.", "Thanks!"]]) do
|
155
|
+
@post.add_comment(["Thanks for sharing this.", "Thanks!"])
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
def test_assert_called_with_multiple_expected_arguments_as_arrays
|
160
|
+
assert_called_with(@post, :add_comment, [[["Thanks for sharing this."]], [["Thanks!"]]]) do
|
161
|
+
@post.add_comment(["Thanks for sharing this."])
|
162
|
+
@post.add_comment(["Thanks!"])
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
def test_assert_called_with_expected_arguments_as_array_and_one_non_array_object
|
167
|
+
assert_called_with(@post, :add_comment, [["Thanks for sharing this."], {body: "Thanks!"}]) do
|
168
|
+
@post.add_comment(["Thanks for sharing this."], {body: "Thanks!"})
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
def test_assert_called_with_multiple_expected_arguments_as_array_and_one_non_array_object
|
173
|
+
assert_called_with(@post, :add_comment, [[["Thanks for sharing this."]], [{body: "Thanks!"}]]) do
|
174
|
+
@post.add_comment(["Thanks for sharing this."])
|
175
|
+
@post.add_comment({body: "Thanks!"})
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
138
179
|
def test_assert_called_on_instance_of_with_defaults_to_expect_once
|
139
180
|
assert_called_on_instance_of(Post, :title) do
|
140
181
|
@post.title
|
@@ -162,7 +203,7 @@ class Minitest::MockExpectations::AssertionsTest < Minitest::Test
|
|
162
203
|
assert_equal "What is new in Rails 6.0", @post.title
|
163
204
|
end
|
164
205
|
|
165
|
-
def
|
206
|
+
def test_assert_called_on_instance_of_failure_because_method_has_not_been_called
|
166
207
|
error = assert_raises(Minitest::Assertion) do
|
167
208
|
assert_called_on_instance_of(Post, :title) do
|
168
209
|
@post.body
|
@@ -172,7 +213,18 @@ class Minitest::MockExpectations::AssertionsTest < Minitest::Test
|
|
172
213
|
assert_equal "Expected title to be called 1 times, but was called 0 times.\nExpected: 1\n Actual: 0", error.message
|
173
214
|
end
|
174
215
|
|
175
|
-
def
|
216
|
+
def test_assert_called_on_instance_of_failure_because_method_has_been_called_more_than_expected_times
|
217
|
+
error = assert_raises(Minitest::Assertion) do
|
218
|
+
assert_called_on_instance_of(Post, :title) do
|
219
|
+
@post.title
|
220
|
+
@post.title
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
224
|
+
assert_equal "Expected title to be called 1 times, but was called 2 times.\nExpected: 1\n Actual: 2", error.message
|
225
|
+
end
|
226
|
+
|
227
|
+
def test_assert_called_on_instance_of_failure_with_message
|
176
228
|
error = assert_raises(Minitest::Assertion) do
|
177
229
|
assert_called_on_instance_of(Post, :title, "Message") do
|
178
230
|
@post.body
|
@@ -200,7 +252,7 @@ class Minitest::MockExpectations::AssertionsTest < Minitest::Test
|
|
200
252
|
end
|
201
253
|
end
|
202
254
|
|
203
|
-
def
|
255
|
+
def test_refute_called_on_instance_of_failure_because_method_has_been_called
|
204
256
|
error = assert_raises(Minitest::Assertion) do
|
205
257
|
refute_called_on_instance_of(Post, :add_comment) do
|
206
258
|
@post.add_comment("Thanks for sharing this.")
|
@@ -210,7 +262,7 @@ class Minitest::MockExpectations::AssertionsTest < Minitest::Test
|
|
210
262
|
assert_equal "Expected add_comment to be called 0 times, but was called 1 times.\nExpected: 0\n Actual: 1", error.message
|
211
263
|
end
|
212
264
|
|
213
|
-
def
|
265
|
+
def test_refute_called_on_instance_of_failure_with_message
|
214
266
|
error = assert_raises(Minitest::Assertion) do
|
215
267
|
refute_called_on_instance_of(Post, :title, "Message") do
|
216
268
|
@post.title
|
@@ -228,7 +280,7 @@ class Minitest::MockExpectations::AssertionsTest < Minitest::Test
|
|
228
280
|
end
|
229
281
|
end
|
230
282
|
|
231
|
-
def
|
283
|
+
def test_assert_not_called_on_instance_of_is_alias_for_refute_called
|
232
284
|
assert method(:assert_not_called_on_instance_of).eql?(method(:refute_called_on_instance_of))
|
233
285
|
end
|
234
286
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest-mock_expectations
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- bogdanvlviv
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-04-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -59,7 +59,7 @@ executables: []
|
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
-
- ".
|
62
|
+
- ".github/workflows/ci.yml"
|
63
63
|
- CHANGELOG.md
|
64
64
|
- Gemfile
|
65
65
|
- Gemfile.lock
|
@@ -92,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
92
92
|
- !ruby/object:Gem::Version
|
93
93
|
version: '0'
|
94
94
|
requirements: []
|
95
|
-
rubygems_version: 3.
|
95
|
+
rubygems_version: 3.1.2
|
96
96
|
signing_key:
|
97
97
|
specification_version: 4
|
98
98
|
summary: Provides method call assertions for minitest
|