0

レールをテストするときにほとんどの人が求めていることとは逆のことをしたいようです...

FOR 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

これを適切なテストとしてどのように構成すればよいですか? 私が試してみました:

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

しかし、それは私にとってもうまくいきません。

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

1 に答える 1

0

ああ、それを it {} の中に入れなければなりませんでした:

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

これで問題は解決しました

于 2012-06-21T04:15:46.653 に答える