访问X和rspec中的{visit X}之间的区别是什么

时间:2013-10-28 07:29:21

标签: ruby-on-rails ruby rspec tdd capybara

我开始使用Rails 4学习使用rspec和Capybara的TDD。到目前为止,它的确很顺利。我有一个问题。

如果我想测试某个页面是否有正确的标题,我写道:

describe "page information" do
  before { visit root_path }
  it { should have_title(full_title('Test title')) }
end

但如果我将before{ visit root_path }更改为visit root_path,则会引发错误。为什么是这样?在其他测试中,我不必写before X

提前致谢。

1 个答案:

答案 0 :(得分:3)

你的意思是从字面上改变这个:

before { visit root_path }

visit root_path

如果是这样,那不是一个有效的规范。你不在规范中,所以你还不能使用visit方法。

describe块不是规范的开头,就像it一样。所有describe都会为其中的规范添加嵌套消息。

beforeafter用于提取设置和拆除步骤,因此您可以在不重复的情况下断言事物。