Rspec视图测试不会呈现更改

时间:2013-01-22 15:23:38

标签: ruby-on-rails view rspec tdd

我正在使用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

电子邮件输入是我以前使用的旧输入,它确实识别它。城市输入是新的,甚至不会出现在终端的视图输出中。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

哇,这是一个棘手的问题。

我正在使用设计并想测试其观点。在我的观察测试中,我说:

describe "devise/registrations/new" do
  # code here
end

但是,前几天我切换到了作用域视图,并相应地将视图文件夹名称从devise更改为users。如果您有不同的用户模型,例如useradmin,并且需要不同的视图,则视图范围很有用。您可以在config/initializers/devise.rb中启用作用域视图,方法是将现有范围行替换为:

config.scoped_views = true

因此,我还必须将我的规范描述更改为

describe "users/registrations/new" do # change to "users" instead of "devise"
  # code here
end

由于我没有这样做,它仍然呈现了设计的标准视图,当它在我的视图文件夹中找不到任何视图时呈现 - 因此我的终端中的源代码输出,表明它可以呈现正确的视图,但缺少更新的代码。