Rspec视图测试不会呈现更改
我正在使用rspec测试我的rails 3.2应用程序中的视图。
我已经为我的视图编写了测试以包含一些额外的输入字段,并且它们正确地失败了。 但是,在添加所需的输入字段后,测试仍然以相同的方式失败。 他们在终端输出表格,就好像我没有在视图中改变任何东西。
在浏览器中检查视图时,实际上存在字段,因此测试应该通过。
rspec没有加载最新的观点?
这是一些代码(我将它缩减为两个字段):
it "renders the form to sign up" do rendered.should have_selector("form", action: "/users", method: "post") do |form| form.should have_selector("input#user_email", name: "user[email]", type: "email") form.should have_selector("input#user_city", name: "user[city]", type: "text") end end
电子邮件输入是我以前的旧输入,它确实识别它。 城市输入是新的,甚至不会出现在终端的视图输出中。
我究竟做错了什么?
哇,这是一个棘手的问题。
我正在使用设计并想测试它的观点。 在我的观察测试中,我说:
describe "devise/registrations/new" do # code here end
但是,前几天我切换到作用域视图,并相应地将视图文件夹名称从devise
更改为users
。 如果您有不同的用户模型(例如user
和admin
并且需要不同的视图,则视图范围很好。 您可以通过将现有范围行替换为以下内容来config/initializers/devise.rb
的范围视图:
config.scoped_views = true
因此,我还必须将我的规范描述更改为
describe "users/registrations/new" do # change to "users" instead of "devise" # code here end
由于我没有这样做,它仍然呈现设计的标准视图,当它在我的视图文件夹中找不到任何视图时呈现 – 因此在我的终端中输出源代码,这表明它可以呈现正确的视图,但是缺少更新的代码。
- RSpec测试使用GET参数重定向到URL
- 针对exception传递的should_receive和should_not_receive的RSpec
- Capybara :: Webkit :: Driver的未定义方法accept_modal
- Rails,Restful Authentication&RSpec – 如何测试需要身份validation的新模型
- Capybara和之前(:全部)在rspec
- 如何从Rails中的RSpec测试中调用app helper方法?
- 使用Rspec测试ActiveModel :: Serializer类
- 有没有办法用Rspec存根包含模块的方法?
- Capybara :: ElementNotFound仅适用于特拉维斯的所有规格