看起来这些别名未正确加载。我正在使用Rails 3.X,rspec 2.8和capybara 1.1.2来编写一些集成测试。 我认为我的Capybara安装是成功的,因为它都适用于标准的'describe'和'it'标签,但Capybara的'feature'和'scenario'别名会抛出'undefined method'错误。
我在文档中没有看到任何提及更多配置的内容: https://github.com/jnicklas/capybara 我在spec_helper.rb
中添加了'require capybara / rspec'答案 0 :(得分:17)
好像你无法将describe / it与feature / scenario语法结合起来。当我在scenario
块中嵌套describe
块时,我收到了同样的错误。用describe
替换feature
后,测试就开始了。一个问题:它似乎也不喜欢嵌套的feature
块,我认为这在接受测试的背景下是有意义的。
describe "some feature" do # <== BAD
scenario "some scenario" do
#spec code here
end
end
feature "some feature" do # <== GOOD
scenario "some scenario" do
#spec code here
end
end
<强>更新强>
我挖掘了Capybara的源代码,而before
和it
并没有background
和scenario
unless the describe
block gets created with capybara_feature => true
出现混淆,这种情况发生在create the block with feature
而不是describe
。