Модульное тестирование блоков 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'