minitest-given 3.7.1 → 3.8.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 39a78e633e738fbce67c2563b5fae535ec81b4f7
4
- data.tar.gz: 5b0485aae6e42d5df7e6d3f6306d8f5c3e93700c
3
+ metadata.gz: da6a81f5ad6dbf98e0063bcc1b606d9f5dbef825
4
+ data.tar.gz: eaa3e62e9daeb482980727f759d30689e7cc8813
5
5
  SHA512:
6
- metadata.gz: 45d5123c6470195a71154f48dc8226f2f655e69add11c20a5d775d64471c1a268ab619afa632d0e17eef7cdd4841bbd940cab71227c76e373be75f54e7a04fd8
7
- data.tar.gz: 569c233f21a5c3a195963f79e95839fad5e8ae98e298770ace4212c188b85dd8b4a70ad22c4dd1f569243b6dd79b59f991bea0cfd7ac49c9cf7cdf981905c38e
6
+ metadata.gz: 39b64acd32322b994f459ef26782d848f77ab69a6fa3e52327f6de90252ceb29a55c1c1868d0d24e5d5a17ffe84a889eb8c27bf4f5fd082c32085239a65eeefb
7
+ data.tar.gz: 758d980afe8784dac520508a0266a26710d01ac26276a0c72585582643cf18983e9c18c37417e41a06108d2b94e00a77010ad673a1c7642782857fe1eb02265f
@@ -2,21 +2,21 @@ GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
4
  diff-lcs (1.2.5)
5
- minitest (5.7.0)
6
- rake (10.4.2)
7
- rspec (3.3.0)
8
- rspec-core (~> 3.3.0)
9
- rspec-expectations (~> 3.3.0)
10
- rspec-mocks (~> 3.3.0)
11
- rspec-core (3.3.1)
12
- rspec-support (~> 3.3.0)
13
- rspec-expectations (3.3.0)
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.3.0)
16
- rspec-mocks (3.3.1)
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.3.0)
19
- rspec-support (3.3.0)
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.0.
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 you want to use a version of Ruby that does not support Ripper,
767
- then natural assertions will disabled. In addition, you should also
768
- disable source caching in the configuration (see the configuration
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
- inn, out, err, wait = Open3.popen3("rspec", "examples/integration/failing/#{filename}")
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: Then \{ result == \['a',$/ }
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
- use_natural_assertions_if_supported
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
@@ -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 use_natural_assertions_if_supported(enabled=true)
27
- if enabled && ! Given::NATURAL_ASSERTIONS_SUPPORTED
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
@@ -1,47 +1,44 @@
1
1
  require 'given/module_methods'
2
2
 
3
- if Given::NATURAL_ASSERTIONS_SUPPORTED
3
+ require 'given/assertions'
4
+ require 'given/fuzzy_number'
4
5
 
5
- require 'given/assertions'
6
- require 'given/fuzzy_number'
6
+ include Given::Assertions
7
+ include Given::Fuzzy
7
8
 
8
- include Given::Assertions
9
- include Given::Fuzzy
10
-
11
- def sqrt(n)
12
- Precondition { n >= 0 }
13
- result = Math.sqrt(n)
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
- def sqrt_bad_postcondition(n)
19
- Precondition { n >= 0 }
20
- result = Math.sqrt(n)
21
- Postcondition { result ** 2 == about(n+1) }
22
- result
23
- end
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
- def use_assert(n)
26
- Assert { n == 1 }
27
- end
23
+ def use_assert(n)
24
+ Assert { n == 1 }
25
+ end
28
26
 
29
- def should_fail
30
- begin
31
- yield
32
- fail "Expected error"
33
- rescue Given::Assertions::AssertError => ex
34
- true
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
- sqrt(1)
39
- sqrt(2)
40
- sqrt(0)
36
+ sqrt(1)
37
+ sqrt(2)
38
+ sqrt(0)
41
39
 
42
- should_fail { sqrt(-1) }
43
- should_fail { sqrt_bad_postcondition(1) }
40
+ should_fail { sqrt(-1) }
41
+ should_fail { sqrt_bad_postcondition(1) }
44
42
 
45
- use_assert(1)
46
- should_fail { use_assert(0) }
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.7.1
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: 2015-07-08 00:00:00.000000000 Z
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.7.1
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.7.1
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.2.3
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.