minitest-given 3.7.1 → 3.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +13 -13
- data/README.md +26 -6
- data/Rakefile +0 -4
- data/examples/integration/failing_messages_spec.rb +10 -4
- data/examples/integration/then_spec.rb +1 -2
- data/examples/minitest_helper.rb +3 -8
- data/examples/use_assertions.rb +33 -36
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da6a81f5ad6dbf98e0063bcc1b606d9f5dbef825
|
4
|
+
data.tar.gz: eaa3e62e9daeb482980727f759d30689e7cc8813
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 39b64acd32322b994f459ef26782d848f77ab69a6fa3e52327f6de90252ceb29a55c1c1868d0d24e5d5a17ffe84a889eb8c27bf4f5fd082c32085239a65eeefb
|
7
|
+
data.tar.gz: 758d980afe8784dac520508a0266a26710d01ac26276a0c72585582643cf18983e9c18c37417e41a06108d2b94e00a77010ad673a1c7642782857fe1eb02265f
|
data/Gemfile.lock
CHANGED
@@ -2,21 +2,21 @@ GEM
|
|
2
2
|
remote: https://rubygems.org/
|
3
3
|
specs:
|
4
4
|
diff-lcs (1.2.5)
|
5
|
-
minitest (5.
|
6
|
-
rake (10.
|
7
|
-
rspec (3.
|
8
|
-
rspec-core (~> 3.
|
9
|
-
rspec-expectations (~> 3.
|
10
|
-
rspec-mocks (~> 3.
|
11
|
-
rspec-core (3.
|
12
|
-
rspec-support (~> 3.
|
13
|
-
rspec-expectations (3.
|
5
|
+
minitest (5.8.3)
|
6
|
+
rake (10.5.0)
|
7
|
+
rspec (3.4.0)
|
8
|
+
rspec-core (~> 3.4.0)
|
9
|
+
rspec-expectations (~> 3.4.0)
|
10
|
+
rspec-mocks (~> 3.4.0)
|
11
|
+
rspec-core (3.4.1)
|
12
|
+
rspec-support (~> 3.4.0)
|
13
|
+
rspec-expectations (3.4.0)
|
14
14
|
diff-lcs (>= 1.2.0, < 2.0)
|
15
|
-
rspec-support (~> 3.
|
16
|
-
rspec-mocks (3.
|
15
|
+
rspec-support (~> 3.4.0)
|
16
|
+
rspec-mocks (3.4.1)
|
17
17
|
diff-lcs (>= 1.2.0, < 2.0)
|
18
|
-
rspec-support (~> 3.
|
19
|
-
rspec-support (3.
|
18
|
+
rspec-support (~> 3.4.0)
|
19
|
+
rspec-support (3.4.1)
|
20
20
|
sorcerer (1.0.2)
|
21
21
|
|
22
22
|
PLATFORMS
|
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.0.
|
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.
|
@@ -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,14 @@ License. See the MIT-LICENSE file in the source distribution.
|
|
870
882
|
|
871
883
|
# History
|
872
884
|
|
885
|
+
* Version 3.8.0
|
886
|
+
|
887
|
+
* RSpec metadata can now be added to _Then_ clauses (see [#11](https://github.com/rspec-given/rspec-given/pull/11))
|
888
|
+
* Natural assertions now run on Rubinius and older versions of JRuby (see [#15](https://github.com/rspec-given/rspec-given/issues/15))
|
889
|
+
* WARNING: On these platforms, detailed failure explanations aren't available and source code snippets of Then clauses will only show the first line.
|
890
|
+
* WARNING: Assertions of void statements (e.g. `Then { }`) will fail only under runtimes lacking Ripper support
|
891
|
+
* `Given.ok_to_use_natural_assertions` was removed; the method was never properly supported as public, but it was publicly reachable
|
892
|
+
|
873
893
|
* Version 3.7.1
|
874
894
|
|
875
895
|
* 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))
|
data/Rakefile
CHANGED
@@ -67,10 +67,6 @@ EXAMPLES = FileList['examples/**/*_spec.rb', 'examples/use_assertions.rb'].
|
|
67
67
|
|
68
68
|
MT_EXAMPLES = FileList['examples/minitest-rails/**/*_spec.rb', 'examples/minitest/**/*_spec.rb']
|
69
69
|
|
70
|
-
unless Given::NATURAL_ASSERTIONS_SUPPORTED
|
71
|
-
EXAMPLES.exclude("examples/stack/*.rb")
|
72
|
-
end
|
73
|
-
|
74
70
|
FAILING_EXAMPLES = FileList['examples/failing/**/*_spec.rb']
|
75
71
|
|
76
72
|
desc "Run the RSpec specs and examples"
|
@@ -2,24 +2,28 @@ 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
29
|
And { complains_xyz_is_not_in_scope?(ios.out) }
|
@@ -35,6 +39,7 @@ describe "Failing Messages" do
|
|
35
39
|
end
|
36
40
|
|
37
41
|
context "when breaking down expressions" do
|
42
|
+
skip_natural_assertions_if_not_supported
|
38
43
|
Given(:failing_test) { "eval_subexpression_spec.rb" }
|
39
44
|
Then { ios.err == "" }
|
40
45
|
And { ios.out =~ /false *<- array\[index\]\.upcase == value$/ }
|
@@ -51,8 +56,9 @@ describe "Failing Messages" do
|
|
51
56
|
end
|
52
57
|
|
53
58
|
context "with an oddly formatted then" do
|
59
|
+
skip_natural_assertions_if_not_supported
|
54
60
|
Given(:failing_test) { "oddly_formatted_then.rb" }
|
55
|
-
Then { ios.out =~ /Failure\/Error
|
61
|
+
Then { ios.out =~ /Failure\/Error:\s*Then \{ result == \['a',$/ }
|
56
62
|
And { ios.out =~ /expected: "anything"/ }
|
57
63
|
And { ios.out =~ /to equal: \["a", "a"\]/ }
|
58
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
|
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,13 +22,9 @@ 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
|
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) }
|
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.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jim Weirich
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-14 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.0
|
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.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: minitest
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -111,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
111
|
version: '0'
|
112
112
|
requirements: []
|
113
113
|
rubyforge_project: given
|
114
|
-
rubygems_version: 2.
|
114
|
+
rubygems_version: 2.4.5
|
115
115
|
signing_key:
|
116
116
|
specification_version: 4
|
117
117
|
summary: Given/When/Then Specification Extensions for Minitest::Spec.
|