在带有公司模型的简单 Rails 应用程序中
class Company < ActiveRecord::Base
# Attributes
attr_accessible :name
validates_presence_of :name
def name=(s)
self[:name] = s.upcase
end
end
运行以下规范文件时。它失败。
require 'spec_helper'
describe Company do
before :each do
@company = Company.new({name: 'my_company'})
end
it "should validate presence of name" do
@company.should validate_presence_of(:name)
end
end
调试显示 name=(s) 方法被调用了两次,一次使用 'my_company',一次使用 nil。
我不明白为什么第二个电话会发生 nill。以下是使用的宝石:
gem 'rails', '3.2.13'
gem 'mysql2'
group :development, :test do
gem 'rspec-rails', '2.11.0'
gem 'shoulda-matchers', :require => false
end