Zobrazují se příspěvky se štítkemMS Tests. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemMS Tests. Zobrazit všechny příspěvky

středa 11. března 2015

Xml Unit

Pokud jste někdy psali testy na XML určitě jste přišli na to že testování pomocí
 Assert.AreEqual(expectedInvoice, xmlString);
Není moc dobrý nápad, protože při každé změně se vám testy rozbijí.

XML Unit se perfektně hodí na testování vygenerovaného XML protože umožňuje testovanou hodnotu vyhledávat pomocí XPath.

Install-Package XmlUnit.Xunit

Příklad:
using System;
using Bt.Stormware.Entity;
using System.Text;
using System.Diagnostics;
using NUnit.Framework;
using System.Xml;
using XmlUnit.Xunit;


 [Test]
        public void XmlTest()
        {
            var xmlString = "<body><a href="https://www.blogger.com/null">Karel</a><input ext="" type="\" /><textarea rows="\">Jan</textarea></body>";

            XmlAssertion.AssertXmlValid(xmlString);
            XmlAssertion.AssertXPathEvaluatesTo("/body/a[text()]", xmlString, "Karel");
            XmlAssertion.AssertXPathEvaluatesTo("/body/a", xmlString, "Karel");

            
            XmlAssertion.AssertXPathExists("/body/input[@type='Text']", xmlString);
            XmlAssertion.AssertXPathEvaluatesTo("/body/textarea[@rows='3']", xmlString, "Jan");
            XmlAssertion.AssertXPathEvaluatesTo("/body/textarea[@rows]", xmlString, "Jan");

        }

pátek 30. ledna 2015

Proč zvolit NUnit namísto MS Tests?

using NUnit.Framework;

[TestFixture]
public class FooTest
{
   [Test]
   public void Foo()
   {
      string a = "Karel";
      string b = "Honza";
      Assert.AreEqual(a, b);
   }
}


using NUnit.Framework;
using Microsoft.VisualStudio.TestTools.UnitTesting;

[TestClass]
public class FooTest
{

   [TestMethod]
   public void Foo()
   {
      string a = "Karel";
      string b = "Honza";
      Assert.AreEqual(a, b);
   }
}

Proč zvolit NUnit namísto MS Tests?
Nemusíte dělat nic víc než vyzkoušet dva testy.
Porovnejte metodou Assert.AreEqual() dva rozdílné textové (např. XML) soubory pomocí MS testu a pomocí NUnit a rozhodněte se, které hlášení o chybě je vám srozumitelnější.

DataDriven Testy
Potřebujete testovat nějaké výpočty s různými hodnotami? Nehodili by se Vám DataDriven Testy?
Pokud vím tak MS testy je moc neumí. Ale NUnit ano.
Podívejte se ja k na to: http://zbyneksulc.blogspot.com/2014/11/nunit-datadriven-test.html


Poznámka:
Friend Assemblies neboli InternalsVisibleTo
using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("AssemblyB")]