minitest-capybara 0.7.2 → 0.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 +4 -4
- data/.travis.yml +9 -9
- data/CHANGELOG.md +9 -0
- data/LICENSE.txt +1 -1
- data/README.md +21 -82
- data/VERSION +1 -1
- data/lib/capybara/assertions.rb +2 -2
- data/lib/minitest/capybara.rb +18 -8
- data/test/capybara/assertions_test.rb +13 -10
- data/test/capybara/expectations_test.rb +9 -9
- data/test/minitest/capybara_test.rb +5 -6
- data/test/test_helper.rb +0 -2
- metadata +2 -14
- data/lib/minitest/features.rb +0 -2
- data/lib/minitest/features/acceptance_spec.rb +0 -6
- data/lib/minitest/features/dsl.rb +0 -28
- data/script/unreleased +0 -6
- data/test/capybara/assertions_using_features_spec.rb +0 -27
- data/test/capybara/expectations_using_features_spec.rb +0 -24
- data/test/minitest/features_test.rb +0 -27
- data/test/support/helper.rb +0 -56
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f3cad186559582c6b6c245b54214ee2bce8fe6be
|
4
|
+
data.tar.gz: 02bb027bc471f6c83f730f8f7211715788068081
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e41c570259fe17200c68cd51fa2823d6f73699d98a5e9a45380338c3c1498fbf7b74fc07c5ddd52ed49123cc0457468182742b5d30481fc05733fd644f3a3508
|
7
|
+
data.tar.gz: 221eb2b615a90567e5ce4080daeaea6d393edc7a4f7a048589ace9aa1523fb1c0ab695fa3054dd17ad8577d1e29a2d2eb9f8661c0418d9b22b6fc1b243c4c819
|
data/.travis.yml
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
language: ruby
|
2
2
|
cache: bundler
|
3
3
|
rvm:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
4
|
+
- 2.1
|
5
|
+
- 2.2
|
6
|
+
- 2.3.0
|
7
|
+
|
8
|
+
before_install:
|
9
|
+
- gem update bundler
|
10
|
+
|
11
11
|
deploy:
|
12
12
|
provider: rubygems
|
13
13
|
api_key:
|
14
14
|
secure: beHIrfhi+kpvA67zbiMXx5n2qAUaNUz+y3RO3yB19jIiTm4Zol8DRJH9jKO6YpIwLlolTrGVQsmZHqmmXRghv3qZXeYwLdp0mvyMIYc5w10OiRwDzlS1DFogevDszRDpypP7J48oFn2llRt1mw9HyLE83GFQcTEvxUJ+ENLA3tY=
|
15
15
|
gem: minitest-capybara
|
16
16
|
on:
|
17
|
-
|
18
|
-
|
17
|
+
tags: true
|
18
|
+
|
19
19
|
before_deploy:
|
20
20
|
- echo Deploying...
|
21
21
|
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
## HEAD
|
2
|
+
|
3
|
+
## v0.8.0
|
4
|
+
|
5
|
+
* Remove depracation for Minitest::Capybara::Assertions.
|
6
|
+
* Better error messages for `assert_content/refute_content`.
|
7
|
+
* Remove feature DSL.
|
8
|
+
* Add Minitest::Capybara::Test and Minitest::Capybara::Spec classes.
|
9
|
+
|
1
10
|
## v0.7.2
|
2
11
|
|
3
12
|
* Update exception message to Capybara::Assertions. - @apotonick
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -23,90 +23,50 @@ With this project minitest gets all the good stuff.
|
|
23
23
|
|
24
24
|
## Rails integration
|
25
25
|
|
26
|
-
|
26
|
+
`minitest-capybara` (and `capybara`) works with Rails out of the box, remember to require `capybara/rails`.
|
27
27
|
|
28
|
-
|
29
|
-
|
30
|
-
See example app: https://github.com/wojtekmach/minitest-capybara-example
|
31
|
-
|
32
|
-
Add to Gemfile:
|
33
|
-
|
34
|
-
```ruby
|
35
|
-
# Gemfile
|
36
|
-
group :test do
|
37
|
-
gem "minitest-capybara"
|
38
|
-
end
|
39
|
-
```
|
40
|
-
|
41
|
-
```ruby
|
42
|
-
# features/my_feature.rb
|
43
|
-
require 'test_helper'
|
28
|
+
See example Rails app: <https://github.com/wojtekmach/minitest-capybara-example>.
|
44
29
|
|
45
|
-
|
46
|
-
given(:lion) { ... }
|
30
|
+
For more features check out: [minitest-rails-capybara](https://github.com/blowmage/minitest-rails-capybara).
|
47
31
|
|
48
|
-
|
49
|
-
visit "/feature"
|
50
|
-
end
|
51
|
-
|
52
|
-
scenario "this awesome feature" do
|
53
|
-
page.must_have_content("Awesome Feature")
|
54
|
-
end
|
55
|
-
end
|
56
|
-
```
|
32
|
+
## Usage
|
57
33
|
|
58
|
-
|
34
|
+
With minitest/test:
|
59
35
|
|
60
36
|
```ruby
|
61
|
-
|
62
|
-
|
37
|
+
class HomeTest < Minitest::Capybara::Test
|
38
|
+
def test_home
|
39
|
+
visit "/"
|
63
40
|
|
64
|
-
|
65
|
-
class AcceptanceTest < Minitest::Test
|
66
|
-
include Capybara::DSL
|
67
|
-
include Capybara::Assertions
|
41
|
+
assert_content "Homepage"
|
68
42
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
end
|
73
|
-
end
|
43
|
+
within ".login" do
|
44
|
+
refute_content "Signed in as"
|
45
|
+
end
|
74
46
|
|
75
|
-
|
76
|
-
|
77
|
-
include Capybara::DSL
|
78
|
-
include Capybara::Assertions
|
47
|
+
assert_link "Sign in"
|
48
|
+
assert_link find(".login"), "Sign in"
|
79
49
|
|
80
|
-
|
81
|
-
Capybara.reset_session!
|
82
|
-
Capybara.use_default_driver
|
50
|
+
assert_selector 'li:first', text: "Item 1"
|
83
51
|
end
|
84
52
|
end
|
85
53
|
```
|
86
54
|
|
87
|
-
|
55
|
+
With minitest/spec:
|
88
56
|
|
89
57
|
```ruby
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
class HomeTest < AcceptanceSpec
|
94
|
-
it "home test" do
|
58
|
+
class HomeSpec < Minitest::Capybara::Spec
|
59
|
+
it "works" do
|
95
60
|
visit "/"
|
96
61
|
|
97
|
-
assert_content "Homepage"
|
98
62
|
page.must_have_content "Homepage"
|
99
63
|
|
100
64
|
within ".login" do
|
101
|
-
refute_content "Signed in as"
|
102
65
|
page.wont_have_content "Signed in as"
|
103
66
|
end
|
104
67
|
|
105
|
-
assert_link "Sign in"
|
106
|
-
assert_link find(".login"), "Sign in"
|
107
68
|
find(".login").must_have_link("Sign in")
|
108
69
|
|
109
|
-
assert_selector 'li:first', text: "Item 1"
|
110
70
|
page.must_have_selector 'li:first', text: "Item 1"
|
111
71
|
end
|
112
72
|
end
|
@@ -121,7 +81,7 @@ Switching drivers is easy with [minitest-metadata]:
|
|
121
81
|
```ruby
|
122
82
|
require 'minitest-metadata'
|
123
83
|
|
124
|
-
class AcceptanceSpec
|
84
|
+
class AcceptanceSpec < Minitest::Capybara::Spec
|
125
85
|
before do
|
126
86
|
if metadata[:js]
|
127
87
|
Capybara.current_driver = Capybara.javascript_driver
|
@@ -131,7 +91,7 @@ class AcceptanceSpec
|
|
131
91
|
end
|
132
92
|
end
|
133
93
|
|
134
|
-
class
|
94
|
+
class HomeSpec < AcceptanceSpec
|
135
95
|
it "home with ajax", js: true do
|
136
96
|
visit "/"
|
137
97
|
page.must_have_content "AJAX enabled..."
|
@@ -141,25 +101,4 @@ end
|
|
141
101
|
|
142
102
|
## License
|
143
103
|
|
144
|
-
|
145
|
-
|
146
|
-
Copyright (c) Wojciech Mach
|
147
|
-
|
148
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
149
|
-
a copy of this software and associated documentation files (the
|
150
|
-
'Software'), to deal in the Software without restriction, including
|
151
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
152
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
153
|
-
permit persons to whom the Software is furnished to do so, subject to
|
154
|
-
the following conditions:
|
155
|
-
|
156
|
-
The above copyright notice and this permission notice shall be
|
157
|
-
included in all copies or substantial portions of the Software.
|
158
|
-
|
159
|
-
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
160
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
161
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
162
|
-
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
163
|
-
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
164
|
-
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
165
|
-
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
104
|
+
minitest-capybara is released under the [MIT License](LICENSE.txt).
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.8.0
|
data/lib/capybara/assertions.rb
CHANGED
@@ -6,13 +6,13 @@ module Capybara
|
|
6
6
|
|
7
7
|
def assert_text(*args)
|
8
8
|
node, *args = prepare_args(args)
|
9
|
-
assert node.has_text?(*args), message { "Expected to
|
9
|
+
assert node.has_text?(*args), message { "Expected to find text #{args.first.inspect} in #{node.text.inspect}" }
|
10
10
|
end
|
11
11
|
alias_method :assert_content, :assert_text
|
12
12
|
|
13
13
|
def refute_text(*args)
|
14
14
|
node, *args = prepare_args(args)
|
15
|
-
assert node.has_no_text?(*args), message { "Expected not to
|
15
|
+
assert node.has_no_text?(*args), message { "Expected not to find text #{args.first.inspect} in #{node.text.inspect}" }
|
16
16
|
end
|
17
17
|
alias_method :assert_no_text, :refute_text
|
18
18
|
alias_method :refute_content, :refute_text
|
data/lib/minitest/capybara.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
require "minitest/capybara/version"
|
2
1
|
require "capybara"
|
2
|
+
require "minitest/capybara/version"
|
3
3
|
|
4
4
|
module Minitest
|
5
5
|
module Capybara
|
@@ -22,15 +22,25 @@ end
|
|
22
22
|
require "capybara/assertions"
|
23
23
|
require "capybara/expectations"
|
24
24
|
|
25
|
-
# :stopdoc:
|
26
25
|
module Minitest
|
27
26
|
module Capybara
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
27
|
+
class Test < Minitest::Test
|
28
|
+
include ::Capybara::DSL
|
29
|
+
include ::Capybara::Assertions
|
30
|
+
|
31
|
+
def teardown
|
32
|
+
::Capybara.reset_session!
|
33
|
+
::Capybara.use_default_driver
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
class Spec < Minitest::Spec
|
38
|
+
include ::Capybara::DSL
|
39
|
+
include ::Capybara::Assertions
|
40
|
+
|
41
|
+
def teardown
|
42
|
+
::Capybara.reset_session!
|
43
|
+
::Capybara.use_default_driver
|
34
44
|
end
|
35
45
|
end
|
36
46
|
end
|
@@ -1,24 +1,27 @@
|
|
1
|
-
require
|
2
|
-
|
3
|
-
Capybara.app = lambda { |env| [200, {}, "<div><h1>foo</h1><a href='/'>bar</a></div>"] }
|
1
|
+
require "test_helper"
|
4
2
|
|
5
3
|
describe "Assertions" do
|
6
4
|
include Capybara::DSL
|
7
5
|
include Capybara::Assertions
|
8
6
|
|
9
|
-
before do
|
10
|
-
visit "/"
|
11
|
-
end
|
12
|
-
|
13
7
|
it "defines all the assertions that Capybara does" do
|
14
|
-
|
8
|
+
Minitest::Capybara.assertions.each do |assertion|
|
9
|
+
assert self.respond_to?("assert_#{assertion}"),
|
10
|
+
"The assertion assert_#{assertion} is not defined."
|
11
|
+
end
|
15
12
|
end
|
16
13
|
|
17
14
|
it "defines all the refutations that Capybara does" do
|
18
|
-
|
15
|
+
Minitest::Capybara.refutations.each do |refutation|
|
16
|
+
assert self.respond_to?("refute_#{refutation}"),
|
17
|
+
"The assertion refute_#{refutation} is not defined."
|
18
|
+
end
|
19
19
|
end
|
20
20
|
|
21
21
|
it "defines all the negative assertions that Capybara does" do
|
22
|
-
|
22
|
+
Minitest::Capybara.refutations.each do |refutation|
|
23
|
+
assert self.respond_to?("assert_no_#{refutation}"),
|
24
|
+
"The assertion assert_no_#{refutation} is not defined."
|
25
|
+
end
|
23
26
|
end
|
24
27
|
end
|
@@ -1,20 +1,20 @@
|
|
1
|
-
require
|
2
|
-
|
3
|
-
Capybara.app = lambda { |env| [200, {}, "<div><h1>foo</h1><a href='/'>bar</a></div>"] }
|
1
|
+
require "test_helper"
|
4
2
|
|
5
3
|
describe "Expectations" do
|
6
4
|
include Capybara::DSL
|
7
5
|
include Capybara::Assertions
|
8
6
|
|
9
|
-
before do
|
10
|
-
visit "/"
|
11
|
-
end
|
12
|
-
|
13
7
|
it "defines all the must expectations that Capybara does" do
|
14
|
-
|
8
|
+
Minitest::Capybara.assertions.each do |assertion|
|
9
|
+
assert page.respond_to?("must_have_#{assertion}"),
|
10
|
+
"The expectation must_have_#{assertion} is not defined."
|
11
|
+
end
|
15
12
|
end
|
16
13
|
|
17
14
|
it "defines all the wont expectations that Capybara does" do
|
18
|
-
|
15
|
+
Minitest::Capybara.refutations.each do |refutation|
|
16
|
+
assert page.respond_to?("wont_have_#{refutation}"),
|
17
|
+
"The expectation wont_have_#{refutation} is not defined."
|
18
|
+
end
|
19
19
|
end
|
20
20
|
end
|
@@ -2,10 +2,7 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
Capybara.app = lambda { |env| [200, {}, "<div><h1>foo</h1><a href='/'>bar</a></div>"] }
|
4
4
|
|
5
|
-
|
6
|
-
include Capybara::DSL
|
7
|
-
include Capybara::Assertions
|
8
|
-
|
5
|
+
class AppTest < Minitest::Capybara::Spec
|
9
6
|
before do
|
10
7
|
visit "/"
|
11
8
|
end
|
@@ -14,12 +11,14 @@ describe "app" do
|
|
14
11
|
|
15
12
|
it "supports assert_content" do
|
16
13
|
assert_content("foo").must_equal true
|
17
|
-
proc { assert_content("BAD") }.must_raise Minitest::Assertion
|
14
|
+
e = proc { assert_content("BAD") }.must_raise Minitest::Assertion
|
15
|
+
e.message.must_equal "Expected to find text \"BAD\" in \"foobar\"."
|
18
16
|
end
|
19
17
|
|
20
18
|
it "supports refute_content" do
|
21
19
|
refute_content("BAD").must_equal true
|
22
|
-
proc { refute_content("foo") }.must_raise Minitest::Assertion
|
20
|
+
e = proc { refute_content("foo") }.must_raise Minitest::Assertion
|
21
|
+
e.message.must_equal "Expected not to find text \"foo\" in \"foobar\"."
|
23
22
|
end
|
24
23
|
|
25
24
|
it "supports assert_selector" do
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest-capybara
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wojciech Mach
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capybara
|
@@ -72,19 +72,11 @@ files:
|
|
72
72
|
- lib/minitest-capybara.rb
|
73
73
|
- lib/minitest/capybara.rb
|
74
74
|
- lib/minitest/capybara/version.rb
|
75
|
-
- lib/minitest/features.rb
|
76
|
-
- lib/minitest/features/acceptance_spec.rb
|
77
|
-
- lib/minitest/features/dsl.rb
|
78
75
|
- minitest-capybara.gemspec
|
79
|
-
- script/unreleased
|
80
76
|
- test/capybara/assertions_test.rb
|
81
|
-
- test/capybara/assertions_using_features_spec.rb
|
82
77
|
- test/capybara/expectations_test.rb
|
83
|
-
- test/capybara/expectations_using_features_spec.rb
|
84
78
|
- test/minitest/base_node_test.rb
|
85
79
|
- test/minitest/capybara_test.rb
|
86
|
-
- test/minitest/features_test.rb
|
87
|
-
- test/support/helper.rb
|
88
80
|
- test/test_helper.rb
|
89
81
|
homepage: ''
|
90
82
|
licenses: []
|
@@ -111,11 +103,7 @@ specification_version: 4
|
|
111
103
|
summary: Capybara matchers support for minitest unit and spec
|
112
104
|
test_files:
|
113
105
|
- test/capybara/assertions_test.rb
|
114
|
-
- test/capybara/assertions_using_features_spec.rb
|
115
106
|
- test/capybara/expectations_test.rb
|
116
|
-
- test/capybara/expectations_using_features_spec.rb
|
117
107
|
- test/minitest/base_node_test.rb
|
118
108
|
- test/minitest/capybara_test.rb
|
119
|
-
- test/minitest/features_test.rb
|
120
|
-
- test/support/helper.rb
|
121
109
|
- test/test_helper.rb
|
data/lib/minitest/features.rb
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
module Minitest
|
2
|
-
module Features
|
3
|
-
module DSL
|
4
|
-
|
5
|
-
include AcceptanceSpec
|
6
|
-
|
7
|
-
##
|
8
|
-
# describe is 'defined' in Object
|
9
|
-
# therefore it is available anywhere
|
10
|
-
# so that allows us to simply
|
11
|
-
# alias feature to describe.
|
12
|
-
alias :feature :describe
|
13
|
-
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
module Spec::DSL
|
18
|
-
##
|
19
|
-
# Pure simple old Ruby#Module alias method
|
20
|
-
#
|
21
|
-
alias :scenario :it
|
22
|
-
alias :background :before
|
23
|
-
alias :given :let
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
|
28
|
-
Object.send(:include, Minitest::Features::DSL)
|
data/script/unreleased
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
app = lambda { |env|
|
4
|
-
[200, { "X-Content-Type" => "Capybara" },"<div><h1>foo</h1><a href='/'>bar</a></div>"]
|
5
|
-
}
|
6
|
-
|
7
|
-
Capybara.app = app
|
8
|
-
|
9
|
-
feature "Assertions" do
|
10
|
-
|
11
|
-
background do
|
12
|
-
visit "/"
|
13
|
-
end
|
14
|
-
|
15
|
-
scenario "defines all assertions capybara does" do
|
16
|
-
assert_(:assertions)
|
17
|
-
end
|
18
|
-
|
19
|
-
scenario "defines all refutations that Capybara does" do
|
20
|
-
refute_(:refutations)
|
21
|
-
end
|
22
|
-
|
23
|
-
scenario "defines all negative assertions that Capybara does" do
|
24
|
-
assert_no_(:refutations)
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
Capybara.app = lambda { |env| [200, {}, "<div><h1>foo</h1><a href='/'>bar</a></div>"] }
|
4
|
-
|
5
|
-
feature "Expectations" do
|
6
|
-
|
7
|
-
given(:bob) { "Hi 'am bob" }
|
8
|
-
background do
|
9
|
-
visit "/"
|
10
|
-
end
|
11
|
-
|
12
|
-
scenario "defines all the must expectations that Capybara does" do
|
13
|
-
must_have_(:assertions)
|
14
|
-
end
|
15
|
-
|
16
|
-
scenario "defines all the wont expectations that Capybara does" do
|
17
|
-
wont_have_(:refutations)
|
18
|
-
end
|
19
|
-
|
20
|
-
scenario "bob" do
|
21
|
-
bob.must_be_kind_of String
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
feature "Testing Features" do
|
4
|
-
|
5
|
-
scenario "I am a scenario" do
|
6
|
-
:it_works.must_equal :it_works
|
7
|
-
end
|
8
|
-
|
9
|
-
scenario "it must include AcceptanceSpec" do
|
10
|
-
self.class.must_include Minitest::AcceptanceSpec
|
11
|
-
end
|
12
|
-
|
13
|
-
feature "must work if nested" do
|
14
|
-
scenario "it works" do
|
15
|
-
:it_works.must_equal :it_works
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
|
21
|
-
feature "Testing methods" do
|
22
|
-
|
23
|
-
given(:bob) { self.class }
|
24
|
-
|
25
|
-
scenario { bob.must_respond_to :background }
|
26
|
-
|
27
|
-
end
|
data/test/support/helper.rb
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
module Helper
|
2
|
-
|
3
|
-
def capybara(m)
|
4
|
-
Minitest::Capybara.send(m)
|
5
|
-
end
|
6
|
-
|
7
|
-
def notice(msg)
|
8
|
-
"The #{msg} is not defined."
|
9
|
-
end
|
10
|
-
|
11
|
-
##
|
12
|
-
# method_name matches anything apart from have
|
13
|
-
# it must be an assertion
|
14
|
-
# if it matches it must be an expectation
|
15
|
-
#
|
16
|
-
def or_message(method_name, msg)
|
17
|
-
if method_name =! Regexp.new("have")
|
18
|
-
notice("assertions " + msg)
|
19
|
-
else
|
20
|
-
notice("expectation "+ msg)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
##
|
25
|
-
# Ask either self or page
|
26
|
-
#
|
27
|
-
def respond_to(m)
|
28
|
-
self.respond_to?(m) || page.respond_to?(m)
|
29
|
-
end
|
30
|
-
|
31
|
-
##
|
32
|
-
# callee here works but __method__ would not.
|
33
|
-
# that's because callee changes accordingly as
|
34
|
-
# self changes.
|
35
|
-
# id2name simply converts a symbol to a string.
|
36
|
-
# _method_ creates a method to be looked up
|
37
|
-
# _method_ = "refute_method_name"
|
38
|
-
#
|
39
|
-
def assert_(method_name)
|
40
|
-
callee = send(:__callee__).id2name
|
41
|
-
capybara(method_name).each do |assertion|
|
42
|
-
_method_ = "#{callee}#{assertion}"
|
43
|
-
|
44
|
-
assert respond_to(_method_),
|
45
|
-
or_message(callee, _method_)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
alias :refute_ :assert_
|
50
|
-
alias :assert_no_ :assert_
|
51
|
-
alias :must_have_ :assert_
|
52
|
-
alias :wont_have_ :assert_
|
53
|
-
|
54
|
-
end
|
55
|
-
|
56
|
-
Object.send(:include, Helper)
|