当与RSpec一起使用时,Capybara的'Feature'和'Scenario'别名会抛出'undefined method'错误

时间:2012-01-25 21:31:12

标签: rspec capybara

看起来这些别名未正确加载。我正在使用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'

1 个答案:

答案 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的源代码,而beforeit并没有backgroundscenario unless the describe block gets created with capybara_feature => true出现混淆,这种情况发生在create the block with feature而不是describe