Модульное тестирование блоков Ruby с помощью Mocking с помощью rr (было flexmock)

Как мне выполнить модульное тестирование следующего:

  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

Как мне проверить, что находится внутри блока?

ОБНОВЛЕНО

Я преобразовал свой тест в spec и переключился на rr mocking framework:

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'

Ответы на вопрос(2)

Ваш ответ на вопрос