Alp*_*pha 14 rspec ruby-on-rails-3 factory-bot
我最近将应用程序升级到rails 3.2.2.
我正在使用Factory_girl
Factory.sequence:name do | n | "名字 - #{n}"结束
Factory.define:用户执行| u | u.first_name {Factory.next(:name)}
u.last_name {| u | 'last_'+ u.first_name}
u.password'secret'u.password_confirmation {| u | u.password} u.sequence(:email){| i | "user_#{i}@example.com"}结束
而这个简单的测试
指定{Factory.build(:user).should be_valid}
生成以下警告
弃用警告:您正在尝试创建属性
user_id'. Writing arbitrary attributes on a model is deprecated. Please just useattr_writer`等(从块中调用(2级)...
我怎么能摆脱它?
我在以下代码中遇到了相同的警告:
广告模型:
class Ad < ActiveRecord::Base
belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)
工厂:
FactoryGirl.define do
factory :ad do
association :user
end
end
FactoryGirl.define do
factory :user do
first_name {Factory.next(:first_name)}
last_name {Factory.next(:last_name)}
email {|x| "#{x.first_name}.#{x.last_name}#{Factory.next(:count)}@test.com"}
password Forgery(:basic).password
confirmed_at Date.today << 10
end
end
Run Code Online (Sandbox Code Playgroud)
测试
require 'spec_helper'
describe Ad do
before(:each) do
@ad = Factory.build(:ad)
end
"it is not valid without a user"
end
Run Code Online (Sandbox Code Playgroud)
运行测试给了我类似的错误。
添加
attr_accessor :user
Run Code Online (Sandbox Code Playgroud)
广告模型修复了警告。
我希望它有帮助。
| 归档时间: |
|
| 查看次数: |
3842 次 |
| 最近记录: |