minitest-given 3.6.0 → 3.8.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 +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
|
| [](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: []
|