rec*_*nym 5 unit-testing rspec ruby-on-rails factory-bot
也许这不是需要测试的东西,但我正在学习所以我认为测试到最大值是不对的.
我有几个测试都会产生预期的结果,除了一个.我找到了一种解决方法,但我想知道正确的方法是什么.
当我在rails控制台中测试保存时,它不会从params散列中保存admin字段,这正是我所期望的.当我使用工厂构建然后保存它时,验证通过/失败.当我测试防止质量分配时,测试失败(因为它设置了我希望它不会的管理字段)
有任何想法,建议或顾虑吗?
谢谢
模型:
class User ...
#id, name, email, admin(int)
attr_accesible :name, email
...
end
Run Code Online (Sandbox Code Playgroud)
user_spec
it "should not have an admin after a mass save" do
user = Factory.build(:user)
user.save
user.admin.should be_nil #its not nil, its 0
end
Run Code Online (Sandbox Code Playgroud)
工厂
Factory.define :user do |f|
f.name "rec_acro"
f.email "rec@acro.com"
f.admin 0
end
Run Code Online (Sandbox Code Playgroud)
Pet*_*own 13
您可以在rspec之上使用Shoulda来获得简洁的质量分配规范:
describe User do
it { should_not allow_mass_assignment_of(:admin) }
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2715 次 |
| 最近记录: |