Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 如何测试质量分配错误_Ruby On Rails 3_Rspec_Mass Assignment - Fatal编程技术网

Ruby on rails 3 如何测试质量分配错误

Ruby on rails 3 如何测试质量分配错误,ruby-on-rails-3,rspec,mass-assignment,Ruby On Rails 3,Rspec,Mass Assignment,似乎我想做与大多数人在测试rails时要求的相反的事情 如何测试ActiveModel::MassAssignmentSecurity::Error。我已经知道了,只是想知道如何使我的测试用例变成绿色而不是红色 当前测试: describe Tag do let(:tag) { FactoryGirl.create(:tag) } subject { tag } describe "when tag name is sent directly" do before { ta

似乎我想做与大多数人在测试rails时要求的相反的事情

如何测试ActiveModel::MassAssignmentSecurity::Error。我已经知道了,只是想知道如何使我的测试用例变成绿色而不是红色

当前测试:

describe Tag do
  let(:tag) { FactoryGirl.create(:tag) }
  subject { tag }

  describe "when tag name is sent directly" do
    before { tag = Tag.new(name: "New") } # <- what I want to raise the error
    it { should_not be_valid } # <- doesn't make it to this line
  end
end
但这对我也不管用,我明白了

Exception encountered: #<NoMethodError: undefined method `raise_error' for #<Class:0x00000102525c08>>

嘎,必须把它放在一个it{}里:

it do
  lambda { tag = Tag.new(name: "NEW") }.should raise_error
end
这为我解决了问题

it do
  lambda { tag = Tag.new(name: "NEW") }.should raise_error
end