我正在测试基于json的方法。该方法采用json数组列表。当json数组按顺序排列时,该方法可以正常工作,当数组随机化时,该方法会中断。所有随机病例都没有失败。所以,在失败时我想保存json数组的值。有没有办法做到这一点?
describe 'when the flat hash comes in random order' do
it 'knows how to create the parent nodes first' do
do_stuff_and_validate(@flat_hash[:nodeList].shuffle!)
end
end
答案 0 :(得分:1)
您可以定义自定义匹配器并覆盖失败消息以显示您想要的内容。
以下示例从RSpec docs复制:
require 'rspec/expectations'
RSpec::Matchers.define :be_a_multiple_of do |expected|
match do |actual|
actual % expected == 0
end
failure_message_for_should do |actual|
"expected that #{actual} would be a multiple of #{expected}"
end
end
# fail intentionally to generate expected output
describe 9 do
it {should be_a_multiple_of(4)}
end
答案 1 :(得分:0)
您可以将此数组写入文件以便稍后检查。
File.open("hash.txt", 'w') do |f|
f.write(your_json_array)
end
答案 2 :(得分:0)
我使用了开始 - 救援 - 再加注技巧。
begin
# The assertions
rescue Exception => e
pp @flat_hash
raise e
end