minitest-spec-expect 0.1.2 → 0.1.3
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 +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +2 -1
- data/Gemfile +3 -0
- data/README.md +11 -4
- data/lib/minitest/spec/expect.rb +9 -9
- data/lib/minitest/spec/expect_syntax.rb +11 -9
- data/lib/minitest/spec/expect_syntax_for_arg.rb +2 -2
- data/lib/minitest/spec/expect_syntax_for_block.rb +3 -5
- data/minitest-spec-expect.gemspec +2 -3
- data/spec/kernel_spec.rb +2 -2
- metadata +17 -3
- data/lib/minitest/spec/expect/version.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0506523fe0fda5d2761cad8fc13b9170f8fcc280
|
4
|
+
data.tar.gz: 32312015cdedf8a8c762c6ada818bae0e015914f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa05b677c8e4575ce61a4dce51247b3d80f8141a622672d05cf84e75e9948697564c9c6b9879eda66c9eb7074433c128a0d8e5653ded107251650fe7f4e45db0
|
7
|
+
data.tar.gz: 5fa64d45f1c8deedfd1892b87ea3a5e564a8deeee1078c7a9f6ca81d4c84d1f4e8ba186cff45e6415156cd92ea814a55a1900d705af274e619315f5b23e1eb6c
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/Gemfile
ADDED
data/README.md
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
[](https://travis-ci.org/davejachimiak/minitest-spec-expect)
|
4
4
|
|
5
|
-
Expect syntax for [
|
6
|
-
both rspec2's expect syntax and
|
5
|
+
Expect syntax for [Minitest](http://docs.seattlerb.org/minitest/index.html). Made out of love for
|
6
|
+
both rspec2's expect syntax and Minitest's lightweight feel.
|
7
7
|
## Install
|
8
8
|
In your Gemfile:
|
9
9
|
```ruby
|
@@ -17,8 +17,15 @@ Then require it in the file that you require `minitest/autorun`:
|
|
17
17
|
```ruby
|
18
18
|
require 'minitest/spec/expect'
|
19
19
|
```
|
20
|
+
minitest-spec-expect works in the following ruby versions and implementations:
|
21
|
+
* 1.9.2
|
22
|
+
* 1.9.3
|
23
|
+
* 2.0.0
|
24
|
+
* JRuby
|
25
|
+
* Rubinius
|
26
|
+
|
20
27
|
## Usage
|
21
|
-
Wrap the object under test in an `expect()` object. Then call a
|
28
|
+
Wrap the object under test in an `expect()` object. Then call a Minitest expectation on it,
|
22
29
|
substituting `must` and `wont` with `to` and `to_not`.
|
23
30
|
|
24
31
|
For example:
|
@@ -50,7 +57,7 @@ describe Integer do
|
|
50
57
|
end
|
51
58
|
```
|
52
59
|
## API
|
53
|
-
Please see the
|
60
|
+
Please see the Minitest [expectation](http://docs.seattlerb.org/minitest/Minitest/Expectations.html)
|
54
61
|
docs for details on corresponding `must_*` and `wont_*` methods.
|
55
62
|
### `#*be`
|
56
63
|
```ruby
|
data/lib/minitest/spec/expect.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
module Kernel
|
2
|
+
NO_ARG = Object.new
|
3
|
+
|
2
4
|
def expect arg=NO_ARG, &block
|
3
5
|
raise_errors arg, block
|
4
|
-
|
6
|
+
Minitest::Spec::Expect.create arg, &block
|
5
7
|
end
|
6
8
|
|
7
9
|
private
|
@@ -13,22 +15,20 @@ module Kernel
|
|
13
15
|
raise ArgumentError, 'cannot handle both an argument and a block' if block
|
14
16
|
end
|
15
17
|
end
|
16
|
-
|
17
|
-
NO_ARG = Object.new
|
18
18
|
end
|
19
19
|
|
20
|
-
require 'minitest/
|
20
|
+
require 'minitest/autorun'
|
21
21
|
|
22
|
-
class
|
22
|
+
class Minitest::Spec::Expect
|
23
23
|
OBJECT_UNDER_TEST = 'object'
|
24
24
|
|
25
25
|
attr_reader OBJECT_UNDER_TEST
|
26
26
|
|
27
|
-
class_eval <<-
|
27
|
+
class_eval <<-CODE
|
28
28
|
def initialize #{OBJECT_UNDER_TEST}
|
29
29
|
@#{OBJECT_UNDER_TEST} = #{OBJECT_UNDER_TEST}
|
30
30
|
end
|
31
|
-
|
31
|
+
CODE
|
32
32
|
|
33
33
|
def self.create arg, &block
|
34
34
|
block ? ForBlock.new(block) : ForArg.new(arg)
|
@@ -36,11 +36,11 @@ class MiniTest::Spec::Expect
|
|
36
36
|
|
37
37
|
class ForArg < self
|
38
38
|
require 'minitest/spec/expect_syntax_for_arg'
|
39
|
-
|
39
|
+
Minitest::Spec::ExpectSyntaxForArg.new(self).set_expectations
|
40
40
|
end
|
41
41
|
|
42
42
|
class ForBlock < self
|
43
43
|
require 'minitest/spec/expect_syntax_for_block'
|
44
|
-
|
44
|
+
Minitest::Spec::ExpectSyntaxForBlock.new(self).set_expectations
|
45
45
|
end
|
46
46
|
end
|
@@ -1,9 +1,7 @@
|
|
1
|
-
class
|
2
|
-
TRANSPOSITIONS
|
1
|
+
class Minitest::Spec::ExpectSyntax
|
2
|
+
TRANSPOSITIONS = { 'must' => 'to', 'wont' => 'to_not' }
|
3
3
|
TRANSPOSITION_REGEXP = Regexp.union TRANSPOSITIONS.keys
|
4
4
|
|
5
|
-
attr_reader :expect_class
|
6
|
-
|
7
5
|
def initialize expect_class
|
8
6
|
@expect_class = expect_class
|
9
7
|
end
|
@@ -20,21 +18,25 @@ class MiniTest::Spec::ExpectSyntax
|
|
20
18
|
raise NotImplementedError
|
21
19
|
end
|
22
20
|
|
21
|
+
def expectations_instance_methods
|
22
|
+
Minitest::Expectations.instance_methods
|
23
|
+
end
|
24
|
+
|
23
25
|
def set_expectation expectation_name
|
24
|
-
expect_class.class_eval <<-
|
26
|
+
@expect_class.class_eval <<-CODE
|
25
27
|
#{expect_method expectation_name }
|
26
|
-
|
28
|
+
CODE
|
27
29
|
end
|
28
30
|
|
29
31
|
def expect_method expectation_name
|
30
32
|
"""
|
31
|
-
def #{expect_method_name expectation_name } *args
|
32
|
-
#{expect_class::OBJECT_UNDER_TEST}.#{expectation_name} *args
|
33
|
+
def #{expect_method_name expectation_name.to_s } *args
|
34
|
+
#{@expect_class::OBJECT_UNDER_TEST}.#{expectation_name} *args
|
33
35
|
end
|
34
36
|
"""
|
35
37
|
end
|
36
38
|
|
37
39
|
def expect_method_name expectation_name
|
38
|
-
expectation_name.
|
40
|
+
expectation_name.gsub TRANSPOSITION_REGEXP, TRANSPOSITIONS
|
39
41
|
end
|
40
42
|
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'minitest/spec/expect_syntax'
|
2
2
|
|
3
|
-
class
|
3
|
+
class Minitest::Spec::ExpectSyntaxForArg < Minitest::Spec::ExpectSyntax
|
4
4
|
private
|
5
5
|
|
6
6
|
def expectation_names
|
7
|
-
|
7
|
+
expectations_instance_methods
|
8
8
|
end
|
9
9
|
end
|
@@ -1,19 +1,17 @@
|
|
1
1
|
require 'minitest/spec/expect_syntax'
|
2
2
|
|
3
|
-
class
|
3
|
+
class Minitest::Spec::ExpectSyntaxForBlock < Minitest::Spec::ExpectSyntax
|
4
4
|
BLOCK_PASSING_EXPECTATION_REGEXES = [/silent/, /output/, /raise/, /throw/]
|
5
5
|
|
6
6
|
private
|
7
7
|
|
8
8
|
def expectation_names
|
9
|
-
|
9
|
+
expectations_instance_methods.select do |method|
|
10
10
|
detect_block_passing_expectation method
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
def detect_block_passing_expectation method
|
15
|
-
BLOCK_PASSING_EXPECTATION_REGEXES.detect
|
16
|
-
regex.match method
|
17
|
-
end
|
15
|
+
BLOCK_PASSING_EXPECTATION_REGEXES.detect { |regex| regex.match method }
|
18
16
|
end
|
19
17
|
end
|
@@ -1,8 +1,6 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
3
|
$:.push File.expand_path("../lib", __FILE__)
|
4
|
-
require 'minitest/spec'
|
5
|
-
require 'minitest/spec/expect/version'
|
6
4
|
|
7
5
|
Gem::Specification.new do |s|
|
8
6
|
s.name = 'minitest-spec-expect'
|
@@ -11,7 +9,7 @@ Gem::Specification.new do |s|
|
|
11
9
|
s.authors = ['Dave Jachimiak']
|
12
10
|
s.email = 'dave.jachimiak@gmail.com'
|
13
11
|
s.homepage = 'http://github.com/davejachimiak/minitest-spec-expect'
|
14
|
-
s.version =
|
12
|
+
s.version = '0.1.3'
|
15
13
|
s.files = `git ls-files`.split("\n").reject do |file_name|
|
16
14
|
/\.gem$/.match file_name
|
17
15
|
end
|
@@ -19,4 +17,5 @@ Gem::Specification.new do |s|
|
|
19
17
|
s.require_paths = ['lib']
|
20
18
|
|
21
19
|
s.add_dependency 'minitest', '~> 5.0'
|
20
|
+
s.add_development_dependency 'rake'
|
22
21
|
end
|
data/spec/kernel_spec.rb
CHANGED
@@ -16,7 +16,7 @@ describe Kernel do
|
|
16
16
|
|
17
17
|
describe 'when a block is passed' do
|
18
18
|
before do
|
19
|
-
expectations =
|
19
|
+
expectations = Minitest::Expectations.instance_methods
|
20
20
|
block_expectation_regexes = [/silent/, /output/, /raise/, /throw/]
|
21
21
|
|
22
22
|
non_block_expectations = expectations.reject do |method|
|
@@ -28,7 +28,7 @@ describe Kernel do
|
|
28
28
|
transpositions = { 'must' => 'to', 'wont' => 'to_not' }
|
29
29
|
|
30
30
|
@non_block_expect_methods = non_block_expectations.map do |expectation|
|
31
|
-
|
31
|
+
transpositions.inject('') do |memo, transposition|
|
32
32
|
string = memo.empty? ? expectation.to_s : memo
|
33
33
|
|
34
34
|
string.gsub transposition.first, transposition.last
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest-spec-expect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dave Jachimiak
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-07-
|
11
|
+
date: 2013-07-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '5.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
description: Expect syntax for minitest specs.
|
28
42
|
email: dave.jachimiak@gmail.com
|
29
43
|
executables: []
|
@@ -33,10 +47,10 @@ files:
|
|
33
47
|
- .gitignore
|
34
48
|
- .travis.yml
|
35
49
|
- CHANGELOG.md
|
50
|
+
- Gemfile
|
36
51
|
- README.md
|
37
52
|
- Rakefile
|
38
53
|
- lib/minitest/spec/expect.rb
|
39
|
-
- lib/minitest/spec/expect/version.rb
|
40
54
|
- lib/minitest/spec/expect_syntax.rb
|
41
55
|
- lib/minitest/spec/expect_syntax_for_arg.rb
|
42
56
|
- lib/minitest/spec/expect_syntax_for_block.rb
|