Looking for nunit Answers? Try Ask4KnowledgeBase
Looking for nunit Keywords? Try Ask4Keywords

nunitRozpoczęcie pracy z nunit


Uwagi

Ta sekcja zawiera przegląd tego, czym jest nunit i dlaczego deweloper może chcieć z niego korzystać.

Powinien również wymieniać wszelkie duże tematy w jednostce nunit i zawierać linki do powiązanych tematów. Ponieważ Dokumentacja dla nunit jest nowa, może być konieczne utworzenie początkowych wersji tych pokrewnych tematów.

Wersje

Wersja Data wydania
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 21.01.2006
2.2.7 2006-02-18
2.2.8 2006-04-21
2.2.9 26.11.2006
2.2.10 15.03.2007
2.4 RC1 2007-02-25
2.4 (wersja ostateczna) 16.03.2007
2.4.1 2007-05-03
2.4.2 2007-08-02
2.4.4 2007-10-20
2.4.5 23.11.2007
2.4.6 31.12.2007
2.4.7 30.03.2008
2.4.8 2008-07-21
2.5 02.05.2009
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 22.04.2010
2.5.6 2010-07-24
2.5.7 01.08.2010
2.5.8 14.10.2010
2.5.9 14.12.2010
2.5.10 02.04.2011
2.6 2012-02-20
2.6.1 2012-08-04
2.6.2 22.10.2012
2.6.3 2013-10-10
2.6.4 16.12.2014
3.0 (Alpha 1) 22.09.2014
3.0 (Beta 1) 2015-03-25
3.0 RC1 01.11.2015
Wersja ostateczna 3.0.0 2015-11-15
3.0.1 01.12.2015
3.2 2016-03-05
3.2.1 19.04.2016
3.4 2016-06-25

Witaj świecie

[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"));
    }
}
 

Test Hello World

Instalacja za pomocą NuGet

Install-Package NUnit
 

Ten pakiet zawiera wszystkie zestawy potrzebne do utworzenia testów jednostkowych.

Testy można wykonać przy użyciu jednej z następujących metod:

  • Okno testu jednostki Visual Studio
  • Biegacz konsoli
  • Zewnętrzny biegacz, który obsługuje NUnit 3

Okno testu jednostki Visual Studio

Aby wykonać testy przy użyciu okna testu jednostki Visual Studio, zainstaluj adapter testowy NUnit 3. https://visualstudiogallery.msdn.microsoft.com/0da0f6bd-9bb6-4ae3-87a8-537788622f2d

Runner konsoli

Zainstaluj NUnit Console Runner za pośrednictwem NuGet

Install-Package NUnit.Console
 

Plik wykonywalny nunit3-console.exe znajduje się w pakietach \ 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 zakończony pomyślnie

Dlaczego nie możesz używać Assert.Equals

Czy zastanawiałeś się kiedyś, dlaczego nie możesz używać Assert.Equals () zarówno dla Nunit, jak i MSTest. Jeśli tego nie masz, być może na początek musisz mieć świadomość, że nie możesz użyć tej metody. Zamiast tego użyłbyś Assert.AreEqual () do porównania dwóch obiektów pod kątem równości.

Powód jest tutaj bardzo prosty. Jak każda klasa, klasa Assert dziedziczy po System.Object, który ma publiczną wirtualną metodę Equals, mającą na celu sprawdzenie, czy dany obiekt jest równy bieżącemu obiektowi. Dlatego wywołanie metody równej byłoby błędem, ponieważ w teście jednostkowym zamiast tego porównano by dwa obiekty, które nie mają nic wspólnego z klasą Assert. W rezultacie Nunit i MSTest zdecydowały się udostępnić do tego celu metodę Assert.AreEqual.

Ponadto, aby upewnić się, że nie użyjesz metody Equals przez pomyłkę, postanowili wprowadzić wyjątki, aby ostrzec cię, jeśli użyjesz tego przez pomyłkę.

Implementacja Nunit:

        [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");
    }