0
私はファイルを解析するクラスSourceReader
を作成し、ファイル内の認識されたトークンの数に応じて何度も生成します。たとえば、私がfile1.txt
を解析すると、値one
が1回だけ出力されます。もう1つの例は、file2.txt
を解析する場合、最初に値がone
、次に値がtwo
のものが2回生成されます。引数をx回使用してメソッドをテストする方法は?
rspecを使用して正しくテストするにはどうすればよいですか?ここで私はこれまで持っているものです。
require './spec/spec_helper'
describe SourceReader do
describe '#each_card' do
context "given file with one card" do
input_filename = './spec/data/file1_spec.txt'
it 'yields once, with arguments "one"' do
File.open(input_filename, 'r') do |file|
sut = SourceReader.new(file)
expect(sut.each_card).to yield_with_args('one')
end
end
end
context "given file with two cards" do
input_filename = './spec/data/file2_spec.txt'
it 'yields twice, with arguments "one", then "two"' do
# some codes
end
end
end
end
私は
ありがとうドキュメントに記載されてい
expect { |b| object.action(&b) }.to yield_with_args
を実装する方法について混乱しています、それは私の問題を解決しました! –