【发布时间】:2014-06-24 21:57:44
【问题描述】:
我正在尝试为我的黄瓜结果编写一个自定义解析器。为此,我想围绕它编写 rspec 测试。我目前拥有的如下:
describe 'determine_test_results' do
it 'returns a scenario name as the key of the scenario results, with the scenario_line attached' do
pcr = ParseCucumberJsonReport.new
expected_results = {"I can login successfully"=>{"status"=>"passed", "scenario_line"=>4}}
cucumber_results = JSON.parse(IO.read('example_json_reports/json_passing.json'))
pcr.determine_test_results(cucumber_results[0]).should == expected_results
end
end
问题是,determine_test_results 有一个名为determine_step_results 的子方法,这意味着这实际上是两个方法之间的集成测试,而不是determine_test_results 的单元测试。
我将如何模拟来自确定步骤结果的“响应”?
假设 determine_step_results 返回 {"status"=>"passed", "scenario_line"=>4}
我尝试过的:
pcr.stub(:determine_step_results).and_return({"status"=>"passed", "scenario_line"=>6})
和
allow(pcr).to receive(:determine_step_results).and_return({"status"=>"passed", "scenario_line"=>6})
【问题讨论】: