0

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
4

3 に答える 3

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
于 2012-05-02T20:02:21.493 に答える
0

begin-rescue-reraise トリックを使用しました。

begin
  # The assertions
rescue Exception => e
  pp @flat_hash
  raise e
end
于 2012-05-03T00:20:43.107 に答える
0

この配列をファイルに書き込んで、後で調べることができます。

File.open("hash.txt", 'w') do |f|
  f.write(your_json_array)
end
于 2012-05-02T19:19:37.800 に答える