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

nunitНачало работы с nunit


замечания

В этом разделе представлен обзор того, что такое nunit, и почему разработчик может захотеть его использовать.

Следует также упомянуть о любых крупных предметах в nunit и ссылки на связанные темы. Поскольку документация для nunit нова, вам может потребоваться создать начальные версии этих связанных тем.

Версии

Версия Дата выхода
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 (окончательный выпуск) 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 (бета-версия 1) 2015-03-25
3.0 RC1 2015-11-01
3.0.0 Final 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

Привет, мир

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

Тест Hello World

Установка с использованием NuGet

Install-Package NUnit
 

Этот пакет включает все сборки, необходимые для создания модульных тестов.

Тесты могут быть выполнены одним из следующих способов:

  • Окно тестирования модуля Visual Studio
  • Консоль
  • Сторонний участник, который поддерживает NUnit 3

Окно тестирования модуля Visual Studio

Чтобы выполнить тесты, используя окно тестирования модулей Visual Studio, установите тестовый адаптер NUnit 3. https://visualstudiogallery.msdn.microsoft.com/0da0f6bd-9bb6-4ae3-87a8-537788622f2d

Консольный бегун

Установите NUnit Console Runner через NuGet

Install-Package NUnit.Console
 

Исполняемый файл nunit3-console.exe находится в пакетах \ 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

Почему вы не можете использовать Assert.Equals

Вы когда-нибудь задавались вопросом, почему вы не можете использовать Assert.Equals () для Nunit и MSTest. Если у вас нет, то, возможно, в начале, вам нужно знать, что вы не можете использовать этот метод. Вместо этого вы должны использовать Assert.AreEqual () для сравнения двух объектов для равенства.

Причина здесь очень проста. Как и любой класс, класс Assert наследуется от System.Object, который имеет общедоступный виртуальный метод Equals, предназначенный для проверки того, равен ли данный объект текущему объекту. Поэтому вызов метода equals будет ошибкой, так как в модульном тесте вместо этого вы должны сравнить два объекта, которые не имеют никакого отношения к классу Assert. В результате Nunit и MSTest оба выбрали для этой цели метод Assert.AreEqual.

Кроме того, чтобы вы не использовали метод Equals по ошибке, они решили бросить исключения, чтобы предупредить вас, если вы используете это по ошибке.

Выполнение 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");
    }