minitest-given 3.6.0 → 3.8.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/Gemfile.lock +19 -16
- data/README.md +39 -7
- data/Rakefile +2 -5
- data/examples/active_support_helper.rb +10 -0
- data/examples/example_helper.rb +1 -0
- data/examples/integration/failing_messages_spec.rb +20 -5
- data/examples/integration/given_spec.rb +2 -2
- data/examples/integration/then_spec.rb +1 -2
- data/examples/minitest-rails/test_case_spec.rb +33 -0
- data/examples/minitest_helper.rb +4 -8
- data/examples/use_assertions.rb +33 -36
- data/lib/minitest-given.rb +1 -1
- data/lib/minitest/given.rb +1 -0
- data/rakelib/gemspec.rake +0 -3
- metadata +10 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: fd3d164a314ccce6dcff4898b68e050f021209d265c4fcf8040222781e9addf9
|
4
|
+
data.tar.gz: 652592b056739a640159ede981c2869dddd6b0975983819d977b66d216f006fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 56bb654001246ebee0e060181d1ce1b559e1914c7d26e91b8ae2e5fd5f62cb2ae01ea4201a2b7fc42a86929b6eb1b6c8cc1a7599acc6ba972cb6a7ba3e8e1c82
|
7
|
+
data.tar.gz: 6162d7a38540731542e752ee9a2844d86296faf5a942dd32ec3516d6100655dbc24ae5acdd4775ea5a240985fecb6a47305a8227309cc1f56feb67e4b82fe6d8
|
data/Gemfile.lock
CHANGED
@@ -1,25 +1,25 @@
|
|
1
1
|
GEM
|
2
2
|
remote: https://rubygems.org/
|
3
3
|
specs:
|
4
|
-
diff-lcs (1.
|
5
|
-
minitest (5.
|
6
|
-
rake (
|
7
|
-
rspec (3.
|
8
|
-
rspec-core (~> 3.
|
9
|
-
rspec-expectations (~> 3.
|
10
|
-
rspec-mocks (~> 3.
|
11
|
-
rspec-core (3.1
|
12
|
-
rspec-support (~> 3.
|
13
|
-
rspec-expectations (3.1
|
4
|
+
diff-lcs (1.4.4)
|
5
|
+
minitest (5.14.3)
|
6
|
+
rake (13.0.3)
|
7
|
+
rspec (3.10.0)
|
8
|
+
rspec-core (~> 3.10.0)
|
9
|
+
rspec-expectations (~> 3.10.0)
|
10
|
+
rspec-mocks (~> 3.10.0)
|
11
|
+
rspec-core (3.10.1)
|
12
|
+
rspec-support (~> 3.10.0)
|
13
|
+
rspec-expectations (3.10.1)
|
14
14
|
diff-lcs (>= 1.2.0, < 2.0)
|
15
|
-
rspec-support (~> 3.
|
16
|
-
rspec-mocks (3.
|
17
|
-
|
18
|
-
|
19
|
-
|
15
|
+
rspec-support (~> 3.10.0)
|
16
|
+
rspec-mocks (3.10.2)
|
17
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
18
|
+
rspec-support (~> 3.10.0)
|
19
|
+
rspec-support (3.10.2)
|
20
|
+
sorcerer (2.0.1)
|
20
21
|
|
21
22
|
PLATFORMS
|
22
|
-
java
|
23
23
|
ruby
|
24
24
|
|
25
25
|
DEPENDENCIES
|
@@ -27,3 +27,6 @@ DEPENDENCIES
|
|
27
27
|
rake
|
28
28
|
rspec (>= 2.14.0)
|
29
29
|
sorcerer (>= 0.3.7)
|
30
|
+
|
31
|
+
BUNDLED WITH
|
32
|
+
2.1.4
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
| :----: |
|
5
5
|
| [![Master Build Status](https://secure.travis-ci.org/rspec-given/rspec-given.png?branch=master)](https://travis-ci.org/rspec-given/rspec-given) |
|
6
6
|
|
7
|
-
Covering rspec-given, minitest-given, and given-core, version 3.
|
7
|
+
Covering rspec-given, minitest-given, and given-core, version 3.8.2.
|
8
8
|
|
9
9
|
rspec-given and minitest-given are extensions to your favorite testing
|
10
10
|
framework to allow Given/When/Then notation when writing specs.
|
@@ -53,7 +53,7 @@ things to watch out for:
|
|
53
53
|
|
54
54
|
* Only one before block is allowed in any given Minitest::Spec
|
55
55
|
describe block. This doesn't effect the number of Givens you are
|
56
|
-
allowed to use, but it may surprise if you are
|
56
|
+
allowed to use, but it may surprise you if you are used to RSpec.
|
57
57
|
|
58
58
|
### Auto Selecting
|
59
59
|
|
@@ -347,6 +347,17 @@ should use an empty _Then_ clause, like this:
|
|
347
347
|
Then { }
|
348
348
|
```
|
349
349
|
|
350
|
+
A _Then_ clause accepts arguments for user-defined RSpec metadata:
|
351
|
+
|
352
|
+
```ruby
|
353
|
+
Then(:zippy, :foo => 17) { ... }
|
354
|
+
```
|
355
|
+
|
356
|
+
Metadata on _Then_ clauses is an RSpec-only feature. You can read more about
|
357
|
+
metadata [in RSpec's
|
358
|
+
documentation](https://www.relishapp.com/rspec/rspec-core/docs/metadata/user-defined-metadata).
|
359
|
+
|
360
|
+
|
350
361
|
#### Then examples:
|
351
362
|
|
352
363
|
```ruby
|
@@ -760,12 +771,13 @@ _expect_.
|
|
760
771
|
|
761
772
|
Given uses the Ripper library to parse the source lines and failing
|
762
773
|
conditions to find all the sub-expression values upon a failure.
|
763
|
-
Currently Ripper is not supported on Rubinius and versions of JRuby
|
764
|
-
prior to JRuby-1.7.5.
|
765
774
|
|
766
|
-
If
|
767
|
-
|
768
|
-
|
775
|
+
If Ripper is not available, like on Rubinius and versions of JRuby prior to
|
776
|
+
JRuby-1.7.5, detailed explanations of failures for natural assertions won't be
|
777
|
+
available. Natural assertions will still work, though.
|
778
|
+
|
779
|
+
If you want to use a version of Ruby that does not support Ripper, then you
|
780
|
+
should disable source caching in the configuration (see the configuration
|
769
781
|
section below).
|
770
782
|
|
771
783
|
### Non-Spec Assertions
|
@@ -870,6 +882,26 @@ License. See the MIT-LICENSE file in the source distribution.
|
|
870
882
|
|
871
883
|
# History
|
872
884
|
|
885
|
+
* Version 3.8.1
|
886
|
+
|
887
|
+
* Fix deprecation warnings fro Ruby 2.6 & up
|
888
|
+
|
889
|
+
* Version 3.8.0
|
890
|
+
|
891
|
+
* RSpec metadata can now be added to _Then_ clauses (see [#11](https://github.com/rspec-given/rspec-given/pull/11))
|
892
|
+
* Natural assertions now run on Rubinius and older versions of JRuby (see [#15](https://github.com/rspec-given/rspec-given/issues/15))
|
893
|
+
* WARNING: On these platforms, detailed failure explanations aren't available and source code snippets of Then clauses will only show the first line.
|
894
|
+
* WARNING: Assertions of void statements (e.g. `Then { }`) will fail only under runtimes lacking Ripper support
|
895
|
+
* `Given.ok_to_use_natural_assertions` was removed; the method was never properly supported as public, but it was publicly reachable
|
896
|
+
|
897
|
+
* Version 3.7.1
|
898
|
+
|
899
|
+
* Mixin Minitest extensions for both ActiveSupport::TestCase (when present) as well as for MiniTest::Spec (see [#8](https://github.com/rspec-given/rspec-given/pulls/8))
|
900
|
+
|
901
|
+
* Version 3.7.0
|
902
|
+
|
903
|
+
* Add support for Rails tests when using minitest-given (See [#6](https://github.com/rspec-given/rspec-given/pull/6))
|
904
|
+
|
873
905
|
* Version 3.6.0
|
874
906
|
|
875
907
|
* Various fixes for RSpec 3.0 (See [#1](https://github.com/rspec-given/rspec-given/pull/1))
|
data/Rakefile
CHANGED
@@ -62,13 +62,10 @@ end
|
|
62
62
|
EXAMPLES = FileList['examples/**/*_spec.rb', 'examples/use_assertions.rb'].
|
63
63
|
exclude('examples/failing/*.rb').
|
64
64
|
exclude('examples/minitest/*.rb').
|
65
|
+
exclude('examples/minitest-rails/*.rb').
|
65
66
|
exclude('examples/integration/failing/*.rb')
|
66
67
|
|
67
|
-
MT_EXAMPLES = FileList['examples/minitest/**/*_spec.rb']
|
68
|
-
|
69
|
-
unless Given::NATURAL_ASSERTIONS_SUPPORTED
|
70
|
-
EXAMPLES.exclude("examples/stack/*.rb")
|
71
|
-
end
|
68
|
+
MT_EXAMPLES = FileList['examples/minitest-rails/**/*_spec.rb', 'examples/minitest/**/*_spec.rb']
|
72
69
|
|
73
70
|
FAILING_EXAMPLES = FileList['examples/failing/**/*_spec.rb']
|
74
71
|
|
data/examples/example_helper.rb
CHANGED
@@ -2,30 +2,44 @@ require 'example_helper'
|
|
2
2
|
require 'open3'
|
3
3
|
|
4
4
|
describe "Failing Messages" do
|
5
|
-
use_natural_assertions_if_supported
|
6
|
-
|
7
5
|
IOS = Struct.new(:out, :err)
|
8
6
|
|
9
7
|
def run_spec(filename)
|
10
|
-
|
8
|
+
_inn, out, err, _wait = Open3.popen3(
|
9
|
+
"rspec", "examples/integration/failing/#{filename}",
|
10
|
+
# Ensure our `project_source_dirs` config is set when we shell out to RSpec.
|
11
|
+
"-rexample_helper"
|
12
|
+
)
|
11
13
|
IOS.new(out.read, err.read)
|
12
14
|
end
|
13
15
|
|
14
16
|
When(:ios) { run_spec(failing_test) }
|
15
17
|
|
16
18
|
context "when referencing constants from nested modules" do
|
19
|
+
skip_natural_assertions_if_not_supported
|
17
20
|
Given(:failing_test) { "module_nesting_spec.rb" }
|
18
21
|
Then { ios.err == "" }
|
19
22
|
And { ios.out !~ /uninitialized constant RSpec::Given::InstanceExtensions::X/ }
|
20
23
|
end
|
21
24
|
|
22
25
|
context "when referencing undefined methods" do
|
26
|
+
skip_natural_assertions_if_not_supported
|
23
27
|
Given(:failing_test) { "undefined_method_spec.rb" }
|
24
28
|
Then { ios.err == "" }
|
25
|
-
And { ios.out
|
29
|
+
And { complains_xyz_is_not_in_scope?(ios.out) }
|
30
|
+
|
31
|
+
def complains_xyz_is_not_in_scope?(out)
|
32
|
+
[
|
33
|
+
# RSpec <3.2's message:
|
34
|
+
"undefined local variable or method `xyz'",
|
35
|
+
# RSpec >3.2's message:
|
36
|
+
"`xyz` is not available from within an example"
|
37
|
+
].any? { |msg| out.include?(msg) }
|
38
|
+
end
|
26
39
|
end
|
27
40
|
|
28
41
|
context "when breaking down expressions" do
|
42
|
+
skip_natural_assertions_if_not_supported
|
29
43
|
Given(:failing_test) { "eval_subexpression_spec.rb" }
|
30
44
|
Then { ios.err == "" }
|
31
45
|
And { ios.out =~ /false *<- array\[index\]\.upcase == value$/ }
|
@@ -42,8 +56,9 @@ describe "Failing Messages" do
|
|
42
56
|
end
|
43
57
|
|
44
58
|
context "with an oddly formatted then" do
|
59
|
+
skip_natural_assertions_if_not_supported
|
45
60
|
Given(:failing_test) { "oddly_formatted_then.rb" }
|
46
|
-
Then { ios.out =~ /Failure\/Error
|
61
|
+
Then { ios.out =~ /Failure\/Error:\s*Then \{ result == \['a',$/ }
|
47
62
|
And { ios.out =~ /expected: "anything"/ }
|
48
63
|
And { ios.out =~ /to equal: \["a", "a"\]/ }
|
49
64
|
end
|
@@ -11,11 +11,10 @@ end
|
|
11
11
|
|
12
12
|
describe "Then" do
|
13
13
|
context "empty thens with natural assertions" do
|
14
|
-
|
14
|
+
skip_natural_assertions_if_not_supported #<--we can't detect void statements
|
15
15
|
Then { }
|
16
16
|
end
|
17
17
|
context "thens to_bool/true will pass" do
|
18
|
-
use_natural_assertions_if_supported
|
19
18
|
Then { ToBool.new(true) }
|
20
19
|
end
|
21
20
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'active_support_helper'
|
3
|
+
require 'minitest/given'
|
4
|
+
require 'example_helper'
|
5
|
+
|
6
|
+
|
7
|
+
describe ActiveSupport::TestCase, :model do
|
8
|
+
Given(:info) { [] }
|
9
|
+
Given { info << "outer1" }
|
10
|
+
Given { info << "outer2" }
|
11
|
+
|
12
|
+
context "using a when without result" do
|
13
|
+
When { info << "when" }
|
14
|
+
|
15
|
+
context "inner with When" do
|
16
|
+
Given { info << "inner1" }
|
17
|
+
Given { info << "inner2" }
|
18
|
+
Then { given_assert_equal ["outer1", "outer2", "inner1", "inner2", "when"], info }
|
19
|
+
|
20
|
+
context "using a nested When" do
|
21
|
+
When { info << "when2" }
|
22
|
+
Then { given_assert_equal ["outer1", "outer2", "inner1", "inner2", "when", "when2"], info}
|
23
|
+
end
|
24
|
+
|
25
|
+
context "using two nested When" do
|
26
|
+
When { info << "when2a" }
|
27
|
+
When { info << "when2b" }
|
28
|
+
Then { given_assert_equal ["outer1", "outer2", "inner1", "inner2", "when", "when2a", "when2b"], info }
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
data/examples/minitest_helper.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
module GivenAssertions
|
3
2
|
def given_assert(cond)
|
4
3
|
assert cond
|
@@ -23,16 +22,13 @@ module GivenAssertions
|
|
23
22
|
end
|
24
23
|
|
25
24
|
module NaturalAssertionControl
|
26
|
-
def
|
27
|
-
if
|
28
|
-
Given {
|
29
|
-
skip "Natural assertions are not supported in JRuby"
|
30
|
-
}
|
31
|
-
else
|
32
|
-
use_natural_assertions(enabled)
|
25
|
+
def skip_natural_assertions_if_not_supported
|
26
|
+
if !Given::NATURAL_ASSERTIONS_SUPPORTED
|
27
|
+
Given { skip "This test requires a Ruby runtime with full natural assertions support." }
|
33
28
|
end
|
34
29
|
end
|
35
30
|
end
|
36
31
|
|
37
32
|
Minitest::Spec.send(:include, GivenAssertions)
|
33
|
+
Minitest::Test.send(:include, GivenAssertions)
|
38
34
|
include NaturalAssertionControl
|
data/examples/use_assertions.rb
CHANGED
@@ -1,47 +1,44 @@
|
|
1
1
|
require 'given/module_methods'
|
2
2
|
|
3
|
-
|
3
|
+
require 'given/assertions'
|
4
|
+
require 'given/fuzzy_number'
|
4
5
|
|
5
|
-
|
6
|
-
|
6
|
+
include Given::Assertions
|
7
|
+
include Given::Fuzzy
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
Postcondition { result ** 2 == about(n) }
|
15
|
-
result
|
16
|
-
end
|
9
|
+
def sqrt(n)
|
10
|
+
Precondition { n >= 0 }
|
11
|
+
result = Math.sqrt(n)
|
12
|
+
Postcondition { result ** 2 == about(n) }
|
13
|
+
result
|
14
|
+
end
|
17
15
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
16
|
+
def sqrt_bad_postcondition(n)
|
17
|
+
Precondition { n >= 0 }
|
18
|
+
result = Math.sqrt(n)
|
19
|
+
Postcondition { result ** 2 == about(n+1) }
|
20
|
+
result
|
21
|
+
end
|
24
22
|
|
25
|
-
|
26
|
-
|
27
|
-
|
23
|
+
def use_assert(n)
|
24
|
+
Assert { n == 1 }
|
25
|
+
end
|
28
26
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
end
|
27
|
+
def should_fail
|
28
|
+
begin
|
29
|
+
yield
|
30
|
+
fail "Expected error"
|
31
|
+
rescue Given::Assertions::AssertError => ex
|
32
|
+
true
|
36
33
|
end
|
34
|
+
end
|
37
35
|
|
38
|
-
|
39
|
-
|
40
|
-
|
36
|
+
sqrt(1)
|
37
|
+
sqrt(2)
|
38
|
+
sqrt(0)
|
41
39
|
|
42
|
-
|
43
|
-
|
40
|
+
should_fail { sqrt(-1) }
|
41
|
+
should_fail { sqrt_bad_postcondition(1) }
|
44
42
|
|
45
|
-
|
46
|
-
|
47
|
-
end
|
43
|
+
use_assert(1)
|
44
|
+
should_fail { use_assert(0) }
|
data/lib/minitest-given.rb
CHANGED
data/lib/minitest/given.rb
CHANGED
data/rakelib/gemspec.rake
CHANGED
@@ -56,7 +56,6 @@ EOF
|
|
56
56
|
s.author = "Jim Weirich"
|
57
57
|
s.email = "jim.weirich@gmail.com"
|
58
58
|
s.homepage = "http://github.com/rspec-given/rspec-given"
|
59
|
-
s.rubyforge_project = "given"
|
60
59
|
end
|
61
60
|
|
62
61
|
MINITEST_GIVEN_SPEC = Gem::Specification.new do |s|
|
@@ -84,7 +83,6 @@ EOF
|
|
84
83
|
s.author = "Jim Weirich"
|
85
84
|
s.email = "jim.weirich@gmail.com"
|
86
85
|
s.homepage = "http://github.com/rspec-given/rspec-given"
|
87
|
-
s.rubyforge_project = "given"
|
88
86
|
end
|
89
87
|
|
90
88
|
GIVEN_CORE_SPEC = Gem::Specification.new do |s|
|
@@ -112,7 +110,6 @@ EOF
|
|
112
110
|
s.author = "Jim Weirich"
|
113
111
|
s.email = "jim.weirich@gmail.com"
|
114
112
|
s.homepage = "http://github.com/rspec-given/rspec-given"
|
115
|
-
s.rubyforge_project = "given"
|
116
113
|
end
|
117
114
|
|
118
115
|
Gem::PackageTask.new(MINITEST_GIVEN_SPEC) do |pkg|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest-given
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jim Weirich
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: given_core
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.
|
19
|
+
version: 3.8.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.
|
26
|
+
version: 3.8.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: minitest
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -54,6 +54,7 @@ files:
|
|
54
54
|
- TODO
|
55
55
|
- doc/article/custom_error_messages.md
|
56
56
|
- doc/main.rdoc
|
57
|
+
- examples/active_support_helper.rb
|
57
58
|
- examples/example_helper.rb
|
58
59
|
- examples/failing/natural_failing_spec.rb
|
59
60
|
- examples/failing/sample_spec.rb
|
@@ -69,6 +70,7 @@ files:
|
|
69
70
|
- examples/integration/invariant_spec.rb
|
70
71
|
- examples/integration/then_spec.rb
|
71
72
|
- examples/loader.rb
|
73
|
+
- examples/minitest-rails/test_case_spec.rb
|
72
74
|
- examples/minitest/assert_raises_spec.rb
|
73
75
|
- examples/minitest_helper.rb
|
74
76
|
- examples/other/line_example.rb
|
@@ -87,7 +89,7 @@ homepage: http://github.com/rspec-given/rspec-given
|
|
87
89
|
licenses:
|
88
90
|
- MIT
|
89
91
|
metadata: {}
|
90
|
-
post_install_message:
|
92
|
+
post_install_message:
|
91
93
|
rdoc_options:
|
92
94
|
- "--line-numbers"
|
93
95
|
- "--inline-source"
|
@@ -108,9 +110,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
110
|
- !ruby/object:Gem::Version
|
109
111
|
version: '0'
|
110
112
|
requirements: []
|
111
|
-
|
112
|
-
|
113
|
-
signing_key:
|
113
|
+
rubygems_version: 3.1.4
|
114
|
+
signing_key:
|
114
115
|
specification_version: 4
|
115
116
|
summary: Given/When/Then Specification Extensions for Minitest::Spec.
|
116
117
|
test_files: []
|