【发布时间】:2012-01-27 17:59:10
【问题描述】:
我有以下规格:
# spec/views/users/new.html.haml
require 'spec_helper'
describe 'users/new' do
before { assign :user, stub_model(User).as_new_record }
before { render }
subject { rendered }
it { should have_selector "form input[type=\"text\"][name=\"user[email]\"]" }
it { should have_selector "form input[type=\"password\"][name=\"user[password]\"]" }
end
当我在创建表单后运行它时,它抱怨未定义的方法“电子邮件”:
undefined method `email' for #<User ...>
如果我将此方法添加到用户,则在用户表中创建适当的列或存根示例中的方法,两个示例都已通过,尽管 密码 方法是仍然未定义。
为什么第二个例子通过了?
谢谢。
红宝石 1.9.3;
Ruby on Rails 3.2.1;
RSpec 2.8.0;
RSpec-rails 2.8.1.
【问题讨论】:
-
可以添加 User 类的代码吗?您使用的是什么身份验证库?
-
在这个例子中我不使用任何授权库。无论如何调用属性:如果我在模型中指定第一个属性,则两个示例都会通过。
标签: ruby-on-rails rspec rspec-rails