= TestXml
== DESCRIPTION
TestXml is a small extension for testing XML/HTML. Extending RSpec and TestUnit it makes asserting and comparing XML snippets easy, and is especially helpful for testing RESTful web services and their XML representations.
== FEATURES
== INSTALL
gem install test_xml
== EXAMPLES
=== Test::Unit and MiniTest
def test_item_representation
assert_xml_equal "
=== RSpec
it "should contain the id" do @item.to_xml.should equal_xml(<<-XML)
XML
end
=== Cucumber
Scenario: When I post some data Then the response should match the following xml """
"""
== USAGE:
=== RSpec
In your spec_helper.rb
require 'test_xml/spec'
And in the actual spec, use these matchers:
=== Test::Unit
In the test_helper.rb
require 'test_xml/test_unit'
In your test file, use these matchers:
Negative assertions are available as assertnot*.
=== MiniTest
In the test_helper.rb
require 'test_xml/mini_test'
Check the Test::Unit section for available assertions.
=== Cucumber
In the features/env.rb
require 'test_xml' require 'test_xml/spec' World(TestXml::Spec)
In your steps file e.g. features/step_definitions/xml_steps.rb add this step:
Then /^the response should match the following xml$/ do |xml| response.body.should equal_xml(xml) end
== ASSERTIONS
=== XML is Equal
Elements, attributes and text nodes are all the same
=== XML Contains
The XML contains the given structure. Checks ancestral relationships, elements, attributes and text nodes starting from and including the root node.
For example, given this XML: