nunitAan de slag met nunit


Opmerkingen

Deze sectie geeft een overzicht van wat nunit is en waarom een ontwikkelaar het misschien wil gebruiken.

Het moet ook alle grote onderwerpen binnen nunit vermelden en naar de gerelateerde onderwerpen verwijzen. Omdat de documentatie voor nunit nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

versies

Versie Publicatiedatum
2.2 2004-08-08
2.2.1 2004-10-26
2.2.2 2004-12-07
2.2.3 2005-02-14
2.2.4 2005-12-14
2.2.5 2005-12-22
2.2.6 2006-01-21
2.2.7 2006-02-18
2.2.8 2006-04-21
2.2.9 2006-11-26
2.2.10 2007-03-15
2.4 RC1 2007-02-25
2.4 (definitieve uitgave) 2007-03-16
2.4.1 2007-05-03
2.4.2 2007-08-02
2.4.4 2007-10-20
2.4.5 2007-11-23
2.4.6 2007-12-31
2.4.7 2008-03-30
2.4.8 2008-07-21
2.5 2009-05-02
2.5.1 2009-07-08
2.5.2 2009-08-10
2.5.3 2009-12-11
2.5.4 2010-04-08
2.5.5 2010-04-22
2.5.6 2010-07-24
2.5.7 2010-08-01
2.5.8 2010-10-14
2.5.9 2010-12-14
2.5.10 2011-04-02
2.6 2012-02-20
2.6.1 2012-08-04
2.6.2 2012-10-22
2.6.3 2013/10/10
2.6.4 2014/12/16
3.0 (Alpha 1) 2014/09/22
3.0 (bèta 1) 2015/03/25
3.0 RC1 2015/11/01
3.0.0 Definitieve release 2015/11/15
3.0.1 2015/12/01
3.2 2016/03/05
3.2.1 2016/04/19
3.4 2016/06/25

Hallo Wereld

[TestFixture]
public class UnitTest1
{
    class Message
    {
        public string Text { get; } = "Hello World";
    }

    [Test]
    public void HelloWorldTest()
    {
        // Act
        var message = new Message();

        // Assert
        Assert.That(message.Text, Is.EqualTo("Hello World"));
    }
}
 

Hallo wereldtest

Installatie met behulp van NuGet

Install-Package NUnit
 

Dit pakket bevat alle samenstellingen die nodig zijn om eenheidstests te maken.

Tests kunnen op een van de volgende manieren worden uitgevoerd:

  • Visual Studio Unit Testvenster
  • Console runner
  • Runner van derden die NUnit 3 ondersteunt

Visual Studio Unit Testvenster

Installeer de NUnit 3-testadapter om tests uit te voeren met behulp van het testvenster van Visual Studio Unit. https://visualstudiogallery.msdn.microsoft.com/0da0f6bd-9bb6-4ae3-87a8-537788622f2d

Console Runner

Installeer de NUnit Console Runner via NuGet

Install-Package NUnit.Console
 

Het uitvoerbare bestand nunit3-console.exe bevindt zich in pakketten \ NUnit.3.XX \ tools

TestCaseAttribute

[TestCase(0, 0, 0)]
[TestCase(34, 25, 59)]
[TestCase(-1250, 10000, 8750)]
public void AddNumbersTest(int a, int b, int expected)
{
    // Act
    int result = a + b;
            
    // Assert
    Assert.That(result, Is.EqualTo(expected));
}
 

AddNumbersTest geslaagd

Waarom u Assert.Equals niet kunt gebruiken

Ooit afgevraagd waarom je Assert.Equals () niet kunt gebruiken voor zowel Nunit als MSTest. Als dit niet het geval is, moet u er misschien om te beginnen rekening mee houden dat u deze methode niet kunt gebruiken. In plaats daarvan zou u Assert.AreEqual () gebruiken om twee objecten voor gelijkheid te vergelijken.

De reden hier is heel eenvoudig. Zoals elke klasse neemt de klasse Assert over van System.Object met een openbare virtuele methode Equals die bedoeld is om te controleren of een bepaald object gelijk is aan het huidige object. Daarom zou het een vergissing zijn om de methode equals te gebruiken, omdat je in een eenheidstest in plaats daarvan twee objecten zou vergelijken die niets met de klasse Assert te maken hebben. Dientengevolge kozen Nunit en MSTest beide voor een methode Assert.AreEqual voor dat doel.

Bovendien hebben ze besloten om Uitzonderingen te gooien om u te waarschuwen als u dit per ongeluk gebruikt, om ervoor te zorgen dat u niet per ongeluk de methode Equals gebruikt.

Nunit-implementatie:

        [EditorBrowsable(EditorBrowsableState.Never)]
    public static new bool Equals(object a, object b)
    {
        // TODO: This should probably be InvalidOperationException
        throw new AssertionException("Assert.Equals should not be used for Assertions");
    }