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 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.