Mockテスト[ruby]

require 'test/unit'
require 'mock'

class AddUserActionText < Test::Unit::TestCase
  def test_system_error
    # set up
    mock_dao = Mock.new
    action = AddUserAction.new
    action.user = "haru01"
    action.dao = mock_dao
    # expectations
    mock_dao.__next(:add){
      |user| raise Errno::ENOENT, "not found text"
    }

    assert_raise(RuntimeError) {
      action.execute
    }
    # execute
    mock_dao.__verify
  end
end

class AddUserAction
  attr_accessor :user
  attr_accessor :dao
  def execute
    begin 
      dao.add(user)
    rescue
      raise "can't add user becouse dao error"
    end
  end
end