0

Rails アプリケーションに次のテストがあります。

it "should validate xml" do
  builder = Builder::XmlMarkup.new
  builder.server(:name => "myServer", :ip => "192.168.1.1").should == "<server name=\"myServer\" ip=\"192.168.1.1\"/>"
end

問題は、xml タグ属性の順序が予測できないため、このテストがパスする場合があることです。この順序を強制する方法はありますか? xml を構築する他の簡単な方法はありますか?

この例は単純化されています。大きな XML があります。私の問題は、WebService 呼び出しを固定 XML ファイルと比較する統合テストを実行したいということです。それ以外の場合は、xml を解析し、XML 内の要素ごとに検証する必要があります。

4

2 に答える 2

4

XML 勧告によると、要素内の属性の順序は予測できません。したがって、属性が特定の順序であることを期待するテストがある場合、そのテストは正しくありません。

于 2010-05-02T02:11:42.910 に答える
0

最後に、.should have_tag アサーションを使用しました。

it "should validate xml" do
  builder = Builder::XmlMarkup.new
  xml = builder.server(:name => "myServer", :ip => "192.168.1.1")
  xml.should have_tag("server[name=myServer]")
  xml.should have_tag("server[ip=192.168.1.1]")
end
于 2010-05-04T20:39:00.950 に答える