以下を単体テストするにはどうすればよいですか。
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'
?