web-k.log

RubyやWebをメインに技術情報をのせていきます

RSpecで例外のテストをする

| Comments

RSpecで例外のテストするにはlambdaを使用する。 例えば、adminというroleを持つUserのインスタンスに対し、destroyというインスタンスメソッドを実行すると、CannotDestroyAdminUserという例外が出るテストをする。その場合次のように書く。

1
2
3
4
5
it "hoge hoge" do
  @user.roles=(['admin'])
  @user.save
  lambda{@user.destroy}.should raise_error(CannotDestroyAdminUser)
end

Comments