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 閱讀(2475) 評論(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!~~  回復  更多評論
            
          主站蜘蛛池模板: 潼南县| 库尔勒市| 靖西县| 韶山市| 阿拉善右旗| 冷水江市| 交口县| 营山县| 安多县| 永仁县| 安龙县| 高密市| 会昌县| 尖扎县| 华容县| 北安市| 玛沁县| 莱州市| 喀喇沁旗| 离岛区| 孟村| 炉霍县| 石台县| 宕昌县| 娄底市| 托克逊县| 永吉县| 黄龙县| 阿鲁科尔沁旗| 囊谦县| 图们市| 贵定县| 屏东县| 淳安县| 怀化市| 大埔县| 平果县| 韶关市| 武平县| 嵊泗县| 桐庐县|