Ruby on rails 如何测试插入与规格有多大关系?
我在一个页面中插入一个用户(一个页面通过memberships表有许多用户),我希望它会失败,因为需要一个角色。我已验证成员资格(联接表)上用户、页面和角色的存在 我的问题是测试在结束之前中断,因为抛出了异常。所以我想,我会给它加上一个“期望加薪”Ruby on rails 如何测试插入与规格有多大关系?,ruby-on-rails,rspec,Ruby On Rails,Rspec,我在一个页面中插入一个用户(一个页面通过memberships表有许多用户),我希望它会失败,因为需要一个角色。我已验证成员资格(联接表)上用户、页面和角色的存在 我的问题是测试在结束之前中断,因为抛出了异常。所以我想,我会给它加上一个“期望加薪” it 'should not be valid without a role' do user = FactoryGirl.build(:user) expect { page.users << user }.to raise_e
it 'should not be valid without a role' do
user = FactoryGirl.build(:user)
expect { page.users << user }.to raise_error(ActiveRecord::RecordInvalid)
end
如果没有角色,它“应该无效”do
user=FactoryGirl.build(:user)
除了{page.users之外,您应该检查gem
您还可以尝试使用以下语法:
it { should have(1).error_on :role }
基本上,您可以访问规范中的错误,并可以检查字段中是否有您想要的错误。我已经这样做了,并添加了一个validate\u university\u,但因为我直接在页面中插入用户并保存它(page.users它永远不会到达那一行,因为page.users模型上没有什么特别的东西:验证:user的存在性,:role,:page验证:user\id的唯一性,:scope=>[:page\u id],消息:“已经拥有此页面的权限”请告诉我们页面
也是什么
it 'should not be valid without a role' do
user = FactoryGirl.build(:user)
expect { page.users << user }.to raise_error(ActiveRecord::RecordInvalid, /Role must be provided/)
end
it { should have(1).error_on :role }