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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ca2121241515d109726c7305514f84ade99a5411
4
- data.tar.gz: b711c3dc935f472e88c8dc8c4cd3b0dc1c53c4f2
2
+ SHA256:
3
+ metadata.gz: fd3d164a314ccce6dcff4898b68e050f021209d265c4fcf8040222781e9addf9
4
+ data.tar.gz: 652592b056739a640159ede981c2869dddd6b0975983819d977b66d216f006fc
5
5
  SHA512:
6
- metadata.gz: 9b26fbd9e5c54f0801d2cb8e03ef64671689f7798adf075ac47d359af518c4db73bfd28785f0390bffc7a9b85de60a73c0192a921a3fb4f48ea634afb9bcfd60
7
- data.tar.gz: 4dfb410a738e8b27ba546991f3cb418826a949f7b016ac31cfbfe1253b6ac085ba1b6ac16dd69cbe1eaef99aff0024d0914c2369a4a875a61b28419303e7bea1
6
+ metadata.gz: 56bb654001246ebee0e060181d1ce1b559e1914c7d26e91b8ae2e5fd5f62cb2ae01ea4201a2b7fc42a86929b6eb1b6c8cc1a7599acc6ba972cb6a7ba3e8e1c82
7
+ data.tar.gz: 6162d7a38540731542e752ee9a2844d86296faf5a942dd32ec3516d6100655dbc24ae5acdd4775ea5a240985fecb6a47305a8227309cc1f56feb67e4b82fe6d8
@@ -1,25 +1,25 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
- diff-lcs (1.2.5)
5
- minitest (5.5.0)
6
- rake (10.4.2)
7
- rspec (3.1.0)
8
- rspec-core (~> 3.1.0)
9
- rspec-expectations (~> 3.1.0)
10
- rspec-mocks (~> 3.1.0)
11
- rspec-core (3.1.7)
12
- rspec-support (~> 3.1.0)
13
- rspec-expectations (3.1.2)
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.1.0)
16
- rspec-mocks (3.1.3)
17
- rspec-support (~> 3.1.0)
18
- rspec-support (3.1.2)
19
- sorcerer (1.0.2)
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.6.0.
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 use to RSpec.
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 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,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
 
@@ -0,0 +1,10 @@
1
+ module ActiveSupport
2
+ class TestCase < Minitest::Test
3
+ # Add spec DSL
4
+ extend ::Minitest::Spec::DSL
5
+
6
+ register_spec_type(self) do |desc, *addl|
7
+ addl.include? :model
8
+ end
9
+ end
10
+ end
@@ -5,6 +5,7 @@ if defined?(RSpec)
5
5
  require 'spec_helper'
6
6
  else
7
7
  require 'minitest/autorun'
8
+ require 'active_support_helper'
8
9
  require 'minitest/given'
9
10
  require 'minitest_helper'
10
11
  end
@@ -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
- 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
- And { ios.out =~ /undefined local variable or method `xyz'/ }
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: Then \{ result == \['a',$/ }
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
@@ -55,8 +55,8 @@ describe "Lazy Givens" do
55
55
  end
56
56
 
57
57
  context "when not called" do
58
- Given(:value) { :ok }
59
- Then { given_assert_equal :ok, value }
58
+ Given(:some_value) { :ok }
59
+ Then { given_assert_equal :ok, some_value }
60
60
  end
61
61
  end
62
62
 
@@ -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
@@ -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
+
@@ -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 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
36
31
 
37
32
  Minitest::Spec.send(:include, GivenAssertions)
33
+ Minitest::Test.send(:include, GivenAssertions)
38
34
  include NaturalAssertionControl
@@ -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) }
@@ -6,4 +6,4 @@
6
6
  #
7
7
  # Thanks.
8
8
 
9
- require 'given/minitest/all'
9
+ require 'minitest/given'
@@ -1 +1,2 @@
1
+ require 'minitest/spec'
1
2
  require 'given/minitest/all'
@@ -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.6.0
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: 2015-01-09 00:00:00.000000000 Z
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.6.0
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.6.0
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
- rubyforge_project: given
112
- rubygems_version: 2.4.4
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: []