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 閱讀(2459) 評論(3)  編輯  收藏 所屬分類: 軟件

          FeedBack:
          # re: 發(fā)表我自己的開源軟件
          2005-07-16 21:44 | 乖狗狗
          泡泡啊,終于又見你寫B(tài)log了
          雖然你的著作對乖狗狗來說是比較深奧滴
          還是努力去看看
          呵呵
            回復(fù)  更多評論
            
          # re: 發(fā)表我自己的開源軟件
          2005-07-19 12:37 | Brian Sun
          謝謝支持,呵呵,我會努力的!
            回復(fù)  更多評論
            
          # re: BlogJava的開源軟件:NXUnit
          2014-10-24 10:26 | lovemydream
          TDD!~~  回復(fù)  更多評論
            
          主站蜘蛛池模板: 桂林市| 沁源县| 连江县| 桂阳县| 清苑县| 保康县| 南漳县| 乳山市| 潍坊市| 芜湖县| 闻喜县| 乌兰察布市| 沁源县| 平武县| 洪湖市| 兰溪市| 瓦房店市| 长丰县| 灌阳县| 满洲里市| 永顺县| 安康市| 瓦房店市| 义马市| 华阴市| 高碑店市| 胶南市| 丹巴县| 江达县| 江安县| 靖边县| 玉树县| 米泉市| 通化县| 满城县| 清水县| 高陵县| 灌云县| 静乐县| 华坪县| 墨脱县|