我正在为我的文章表单编写功能规范。
在一次测试中,我让RSpec使用标签寻找某些表格输入:
expect(find_field("Title")).to_not be_nil
现在我想知道表单是否已正确提交。如何使用RSpec执行此操作,如果您不应该从功能规范中检查数据库?
例如,如果我在name
输入上输错了Title
属性怎么办?我的find_field()
调用仍会找到该标签,而控制器规范会让我在散列中指定title
。
答案 0 :(得分:0)
在这种情况下,人们会认为文章需要一个标题,因此如果名称属性拼写错误,文章的创建将失败并且您最终会出现在错误页面上(此外,未经许可的参数会在在具有强参数的测试模式下默认创建)。如果它不是创建文章所需的字段,那么假设信息显示在应用程序的某个地方,并且可以在该页面上进行检查。
另外,如果重写为
,您的样本预期会更清晰expect(page).to have_field('Title')
答案 1 :(得分:0)
有很多方法可以解决这个问题:
expect(page).to have_field('Title')
expect(page).to have_css('#someSelector')
expect(current_path).to eq article_path (for example)
expect(page).to have_content "ABC" (i.e. some content which will be rendered)
关于Github的Capybara自述文件是一个非常好的,有很多易于理解的例子 - https://github.com/jnicklas/capybara。