nee*_*zer 6 dsl minitest capybara ruby-on-rails-3
Capybara的自述文件(参见使用Capybara和MiniTest :: Spec)说我可以这样做,如果我正确地包含模块,但它没有提供任何说明性的例子如何...我试过包括像这样的模块:
class MiniTest::Spec
include Capybara::DSL
end
Run Code Online (Sandbox Code Playgroud)
......无济于事 我一直收到这个错误:
<main>': undefined methodfeature'for main:Object(NoMethodError)
如何在注释掉的代码中编写它?
规格/接受/ API/reward_terms_spec.rb:
require "#{Dir.pwd}/spec/acceptance/acceptance_helper"
# this syntax works...
describe 'reward terms acceptance test' do
include Capybara::DSL
describe '#index' do
specify {
visit '/reward_terms'
# ...
}
end
end
# this syntax doesn't work...
# feature 'RewardTerms', %q{
# In order to get all reward terms available to me
# As an API client
# I want to list all active RewardTerms
# } do
# background do
# set_api_headers
# end
# scenario 'RewardTerm index' do
# visit '/reward_terms'
# ...
# end
# end
Run Code Online (Sandbox Code Playgroud)
规格/接受/ acceptance_helper.rb:
ENV["RAILS_ENV"] = "test"
require "#{Dir.pwd}/config/environment"
require 'minitest/autorun'
require 'capybara/rails'
def set_api_headers(device_id = 'abcd1234')
header 'Accept', 'application/json'
header 'X-Device-Id', device_id
end
Run Code Online (Sandbox Code Playgroud)
这篇文章中有一个很好的描述,介绍了如何使 MinitTest::Spec 与水豚一起运行。在那里,他基本上将 Capybara::DSL 包含到所有规范的基类中,如下所示
class RequestSpec < MiniTest::Spec
include Rails.application.routes.url_helpers
include Capybara::DSL
end
Run Code Online (Sandbox Code Playgroud)
这在我们的设置中工作得相当好,但当然它不会重新打开 MiniTest::Spec。
| 归档时间: |
|
| 查看次数: |
2816 次 |
| 最近记录: |