代码之家  ›  专栏  ›  技术社区  ›  millisami

多行期望RSpec测试断言?

  •  0
  • millisami  · 技术社区  · 14 年前

    我有如下期望:

    it "should generate the correct header for the xml file" do
      xml_header = <<-XML
      <?xml version="1.0" encoding="utf-8"?>
      <FileSpec>
        <Header>
            <Version>1.0</Version>
            <DateTime>2010-10-17T10:41:18</DateTime>
            <Sequence>3</Sequence>
            <ClientID>QQWW</ClientID>
            <FileType>QQWW</FileType>
        </Header>
      </FileSpec>
      XML
      puts SomeXml.build_xml_header
      SomeXml.build_xml_header.to_s.should == xml_header
    end
    

    在这种情况下如何断言?我想是的 == 火柴匠受不了。

    Failure/Error: SomeXml.build_xml_header.to_s.should == xml_header
     expected: "    <?xml version=\"1.0\" encoding=\"utf-8\"?>\n    <FileSpec>\n    \t<Header>\n    \t\t<Version>1.0</Version>\n    \t\t<DateTime>2010-10-17T10:41:18</DateTime>\n    \t\t<Sequence>3</Sequence>\n    \t\t<ClientID>QQWW</ClientID>\n    \t\t<FileType>QQWW</FileType>\n    \t</Header>\n    </FileSpec>\n",
          got: "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<FileSpec>\n  <Header>\n    <Version>1.0</Version>\n    <DateTime>2010-10-17T10:41:18</DateTime>\n    <Sequence>3</Sequence>\n    <ClientID>QQWW</ClientID>\n    <FileType>QQWW</FileType>\n  </Header>\n</FileSpec>\n" (using ==)
    
    1 回复  |  直到 14 年前
        1
  •  2
  •   Peter Brown    14 年前

    编辑:我没有把XML看得那么仔细。你的空白出现了

    在rspec中可能有更好的匹配方法,但为了简单起见:

    a.gsub(/\s/,'').downcase.should == b.gsub(/\s/,'').downcase