posts - 80,comments - 749,trackbacks - 2

What is NXUnit?

NXUnit is a NUnit -style unit testing framework about XML for .NET Framework. It is an extension to NUnit. It brings you the ability to do unit testing easily in XML applications. It helps you to concentrate on business logic of your XML application and improve your Test Driven Development(TDD) technics. You can directly compare one XML string or stream with another, er assert that they are equal, just like doing the same thing to two integers using xUnit. But without NXUnit, you must pay attention to whitespaces in XML strings, empty elements or attributes, unimportant order of elements or attributes, unneccessary comments and so on. It's similar with XmlUnit in some aspects.

Features

The current version is NXUnit 1.0rc1, July 2005. The following is the 8 features of this version, which you can find in the facade class XMLAssert:

    * Assert that two XML inputs are equal.
    * Compare two XML inputs and find all differences between them.
    * Assert that declarations of two XML inputs are equal.
    * Assert that document types of two XML inputs are equal.
    * Assert the validity of an XML input.
    * Assert that the evaluation of an XPath expression on an XML input will return the expected value.
    * Assert that an XPath expression exists for an XML input.
    * Assert that an XML input is included by another.

And you can change the properties of an instance of XMLAssert before an assertion or comparition, in order to:

    * Ignore the case of the elements' and attributes' names
    * Ignore XML comments
    * Ignore XML declarations and document types of both inputs
    * Ignore empty elements and attributes
    * Ignore orders of elements and attributes
    * Ignore unimportant whitespaces

Sample

 1    using System;
 2    using System.IO;
 3    using System.Xml;
 4    using NUnit.Framework;
 5    using NXUnit.Framework;
 6
 7
 8    [TestFixture]
 9    public class Sample
10    {
11        private XMLAssert xa;
12
13        [SetUp]
14        public void Init()
15        {
16            xa = XMLAssert.CreateInstance();
17        }

18
19        [Test]
20        public void TestMethod()
21        {
22            // Init the xml input
23            string s1 = "";
24            string s2 = "";
25
26            // Init the options for your purpose
27            xa.IsOrderSensitive = false;
28
29            // Assert two XML inputs are equal
30            xa.AreEqual(s1, s2, "Assertion Failed!");
31
32            // Compare two XML inputs and find all differences between them
33            CompareResult r = xa.Compare(s1, s2);
34            foreach (Diff d in r)
35            {
36                Console.WriteLine(d);
37            }

38            CompareResult another = xa.Compare(s1, s2);
39            r.Add(another);
40            for (int i = 0; i < r.Count; i++)
41            {
42                Console.WriteLine(r[i]);
43            }

44            if (r.AreEqual)
45            {
46                // They are equal
47            }

48
49            // Assert two XML declaration of the two XML inputs are equal
50            xa.AreDeclareEqual(s1, s2, "Declarations are not equal");
51
52            // Assert two document types of the two XML inputs are equal
53            xa.AreDocTypeEqual(s1, s2, "DocTypes are not equal");
54
55            // Assert the validity of an XML input
56            XMLAssert.IsValid("");
57            XMLAssert.IsValidFile(@"C:\");
58
59            // Assert the evaluation of an XPath expression on an XML input will 
60            // return the expected value
61            xa.AreXpathEqual("<a/>""/r/a[2]", s1, 
62                "The xpath expression doesn't return <a/>");
63
64            // Assert an XPath expression is exist for an XML input
65            XMLAssert.XpathExist("//@b='c'", s1, 
66                "The xml document doesn't have the xpath expression");
67
68            // Assert an XML input is included by another one
69            xa.IsIncluded(s1, s2, "The {0} is not included in {1}", s1, s2);
70
71            // The Counter
72            Assert.AreEqual(6, xa.Counter);
73
74            // XMLInput can use in all the samples above
75            xa.AreEqual(XMLInput.CreateFromString(s1), 
76                XMLInput.CreateFromString(s2), "Assertion Failed!");
77        }

78    }
posted on 2005-07-15 13:22 Brian Sun 阅读(2448) 评论(3)  编辑  收藏 所属分类: 软件

FeedBack:
# re: 发表我自己的开源软件
2005-07-16 21:44 | 乖狗狗
泡泡啊,终于又见你写Blog了
虽然你的著作对乖狗狗来说是比较深奥滴
还是努力去看看
呵呵
  回复  更多评论
  
# re: 发表我自己的开源软件
2005-07-19 12:37 | Brian Sun
谢谢支持,呵呵,我会努力的!
  回复  更多评论
  
# re: BlogJava的开源软件:NXUnit
2014-10-24 10:26 | lovemydream
TDD!~~  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: