Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails中的XML测试-修复了ruby中Builder::XmlMarkup中的属性顺序-_Ruby On Rails_Xml_Ruby_Web Services_Builder - Fatal编程技术网

Ruby on rails Rails中的XML测试-修复了ruby中Builder::XmlMarkup中的属性顺序-

Ruby on rails Rails中的XML测试-修复了ruby中Builder::XmlMarkup中的属性顺序-,ruby-on-rails,xml,ruby,web-services,builder,Ruby On Rails,Xml,Ruby,Web Services,Builder,我在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”做什么 builder=builder:

我在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”做什么
builder=builder::XmlMarkup.new
builder.server(:name=>“myServer”,:ip=>“192.168.1.1”)。应==“”
结束
问题是这个测试有时会通过,因为xml标记属性的顺序是不可预测的。有没有办法强制执行这个命令?有没有其他简单的方法来构建xml


这个例子很简单,我有一个很大的XML。我的问题是,我想做一个集成测试,将WebService调用与固定的XML文件进行比较。否则,我将不得不解析xml并逐个验证xml中的元素。

根据xml建议,元素中属性的顺序是不可预测的。因此,如果您有一个测试期望属性按特定顺序排列,那么该测试是不正确的。

根据XML建议,元素中属性的顺序是不可预测的。因此,如果您有一个要求属性按特定顺序排列的测试,那么该测试是不正确的。

最后,我使用了.should have_标记断言:

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

最后,我使用了.should have_标记断言:

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
xml.com声明(at)属性应该按字典顺序排列(该页的第13项)。这似乎与其他来源相冲突。YMMV.xml.com声明(at)属性应该按字典顺序排列(该页的第13项)。这似乎与其他来源相冲突。YMMV。