0

以下を単体テストするにはどうすればよいですか。

  def update_config
    store = YAML::Store.new('config.yaml')
    store.transaction do
      store['A'] = 'a'
    end
  end

これが私のスタートです:

  def test_yaml_store
    mock_store = flexmock('store')
    mock_store
      .should_receive(:transaction)
      .once
    flexmock(YAML::Store).should_receive(:new).returns(mock_store)
    update_config()
  end

ブロックの中身をテストするにはどうすればよいですか?

更新しました

テストを仕様に変換し、rr モッキング フレームワークに切り替えました。

describe 'update_config' do
  it 'calls transaction' do
    stub(YAML::Store).new do |store|
      mock(store).transaction
    end
    update_config
  end
end

これは、トランザクションが呼び出されたことをテストします。ブロック内でテストするにはどうすればよいですか: store['A'] = 'a'?

4

2 に答える 2