Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

RSpec | 例外の検証

概要

例外の検証

内容

例外の検証時はブロック+raise_errorメソッドで検証します。

lambda {test_method(args)}.should raise_error(error_class)

サンプル

実装
# encoding: utf-8
class Hoge
  def hoge(error)
    raise HogeError.new if error
  end
end

class HogeError < StandardError;end
テスト
# encoding: utf-8
require_relative "../lib/hoge"

describe Hoge do
  describe "hoge" do
    it "error = true then raise error" do
      lambda {Hoge.new.hoge(true)}.should raise_error(HogeError)
    end
    
    it "error = false then not raise error" do
      lambda {Hoge.new.hoge(false)}.should_not raise_error()
    end
  end
end
結果
$rspec
..

Finished in 0.004 seconds
2 examples, 0 failures