我的数据库中的第一个用户是超级管理员,我不希望任何人能够编辑与该帐户关联的电子邮件地址,所以我有以下模型规范,但它失败了。
# from my User model spec
describe "super admin" do
let(:super_admin){ FactoryGirl.create(:admin, email: "test@email.com") }
it "can't be edited by anyone" do
expect do
super_admin.update_attributes(email: 'email@test.com')
end.not_to change(super_admin, :email)
end
end
我的控制器有一个 before 过滤器,它重定向任何尝试编辑第一个数据库条目的用户(超级管理员)。
我担心上面的测试失败了。当编辑这个特定用户被控制器锁定时,我在模型中测试它是错误的,还是我仍然希望它通过,无论它是在请求规范还是模型规范中?
PS - 用户模型具有电子邮件(字符串)和管理员(布尔)字段。SuperAdmin 只是数据库中的第一个用户,恰好是管理员,没什么花哨的