NUnit - NUnit

NUnit
Логотип Nunit 250.png
Графический интерфейс NUnit 2.4.6 в Windows
NUnit 2.4.6 GUI в Windows
Оригинальный автор (ы)Чарли Пул, Джеймс Ньюкирк, Алексей Воронцов, Майкл Два, Филип Крейг, Роб Проуз, Симона Бусоли, Нил Колвин
Разработчики)Проект NUnit,
.NET Foundation
Стабильный выпуск
3.12.0 / 14 мая 2019 г.; 18 месяцев назад (2019-05-14)
Репозиторийgithub.com/ nunit
Написано вC #
Операционная система.NET Framework, Мононуклеоз
ТипМодульное тестирование инструмент
ЛицензияЛицензия MIT для 3.0, в стиле BSD (изменено лицензия zlib ) для 2.x
Интернет сайтwww.nunit.org

NUnit является Открытый исходный код модульное тестирование рамки для .NET Framework и Мононуклеоз. Он служит той же цели, что и JUnit делает в Ява мире, и является одной из многих программ в xUnit семья.[нужна цитата ]

особенности

  • Тесты можно запускать из средства запуска консоли в Visual Studio через адаптер тестирования,[1] или через сторонних участников.
  • Тесты можно проводить параллельно.[2]
  • Сильная поддержка тестов на основе данных.[3]
  • Поддерживает несколько платформ, включая .NET Core,[4] Xamarin Mobile,[5] Компактная структура[6] и Silverlight.[7]
  • Каждый тестовый пример можно добавить в одну или несколько категорий, чтобы обеспечить выборочный запуск.[8]

NUnit предоставляет средство запуска консоли (nunit3-console.exe), которое используется для пакетного выполнения тестов. Средство выполнения консоли работает через механизм тестирования NUnit Test Engine, который дает ему возможность загружать, исследовать и выполнять тесты. Когда тесты должны выполняться в отдельном процессе, движок использует программу nunit-agent для их запуска.[нужна цитата ]

Бегун NUnitLite может использоваться в ситуациях, когда более простой бегун более подходит. Это позволяет разработчикам создавать самоисполняющиеся тесты.[нужна цитата ]

Утверждения

NUnit предоставляет богатый набор утверждения как статические методы Утверждать учебный класс. Если утверждение не выполняется, вызов метода не возвращается, и выдается сообщение об ошибке. Если тест содержит несколько утверждений, все утверждения, следующие за провалом, выполняться не будут. По этой причине обычно лучше использовать одно утверждение на тест.[нужна цитата ]

Nunit 3.x поддерживает несколько утверждений.

[Тест]общественный пустота ComplexNumberTest(){    Комплексное число результат = SomeCalculation();    Утверждать.Несколько(() =>    {        Утверждать.Равны(5.2, результат.RealPart, "Реальная часть");        Утверждать.Равны(3.9, результат.ImaginaryPart, «Мнимая часть»);    });}

Классический

До NUnit 2.4 отдельный метод Утверждать class использовался для каждого отдельного утверждения. Он продолжает поддерживаться в NUnit, поскольку многие люди предпочитают его.[нужна цитата ]

Каждый метод assert может быть вызван без сообщения, с простым текстовым сообщением или с сообщением и аргументами. В последнем случае сообщение форматируется с использованием предоставленного текста и аргументов.[нужна цитата ]

// Равенство утверждаетУтверждать.Равны(объект ожидается, объект действительный);Утверждать.Равны(объект ожидается, объект действительный, нить сообщение, параметры объект[] Пармы);Утверждать.AreNotEqual(объект ожидается, объект действительный);Утверждать.AreNotEqual(объект ожидается, объект действительный, нить сообщение, параметры объект[] Пармы);// Подтверждение идентичностиУтверждать.AreSame(объект ожидается, объект действительный);Утверждать.AreSame(объект ожидается, объект действительный, нить сообщение, параметры объект[] Пармы);Утверждать.Не то же самое(объект ожидается, объект действительный);Утверждать.Не то же самое(объект ожидается, объект действительный, нить сообщение, параметры объект[] Пармы);// Утверждение условия// (Для простоты методы с подписями сообщений опускаются.)Утверждать.Правда(bool условие);Утверждать.IsFalse(bool условие);Утверждать.Нулевой(объект объект);Утверждать.IsNotNull(объект объект);Утверждать.IsNaN(двойной двойной);Утверждать.Пусто(нить строка);Утверждать.IsNotEmpty(нить строка);Утверждать.Пусто(ICollection коллекция);Утверждать.IsNotEmpty(ICollection коллекция);

На основе ограничений

Начиная с NUnit 2.4, новый На основе ограничений была представлена ​​модель. В этом подходе используется единственный метод Утверждать класс для всех утверждений, передавая Ограничение объект, определяющий выполняемый тест. Эта основанная на ограничениях модель теперь используется внутри NUnit для всех утверждений. Методы классического подхода были повторно реализованы поверх этой новой модели.[нужна цитата ]

Пример

Пример NUnit испытательный стенд:[нужна цитата ]

с помощью NUnit.Framework;[TestFixture]общественный класс ExampleTestOfNUnit{    [Тест]    общественный пустота TestMultiplication()    {        Утверждать.Равны(4, 2*2, "Умножение");                // Аналогично, начиная с версии 2.4 NUnit предлагает новые и        // более интуитивно понятный синтаксис утверждения на основе объектов ограничений        // [http://www.nunit.org/index.php?p=constraintModel&r=2.4.7]:        Утверждать.Это(2*2, Является.Равно(4), «Умножение на основе ограничений»);    }}// В следующем примере показаны разные способы написания одного и того же теста исключения.[TestFixture]общественный класс AssertThrowsTests{    [Тест]    общественный пустота Тесты()    {        // .NET 1.x        Утверждать.Броски(тип(ArgumentException),            новый TestDelegate(MethodThatThrows));	            // .NET 2.0        Утверждать.Броски<ArgumentException>(MethodThatThrows);        Утверждать.Броски<ArgumentException>(	    делегировать { бросать новый ArgumentException(); });        // Использование C # 3.0         Утверждать.Броски<ArgumentException>(            () => { бросать новый ArgumentException(); });    }        пустота MethodThatThrows()    {        бросать новый ArgumentException();    }}// В этом примере показано использование возвращаемого значения для дополнительной проверки исключения.[TestFixture]общественный класс ИспользованиеReturnValue{    [Тест]    общественный пустота TestException()    {        MyException бывший = Утверждать.Броски<MyException>(            делегировать { бросать новый MyException("сообщение", 42); });        Утверждать.Это(бывший.Сообщение, Является.Равно("сообщение"));        Утверждать.Это(бывший.MyParam, Является.Равно(42));     }}// Этот пример делает то же самое, используя перегрузку, которая включает ограничение.[TestFixture]общественный класс UsingConstraint{    [Тест]    общественный пустота TestException()    {        Утверждать.Броски(Является.Тип<MyException>()                                 .И.Сообщение.Равно("сообщение")                                 .И.Свойство("MyParam").Равно(42),            делегировать { бросать новый MyException("сообщение", 42); });    }}

Фреймворк NUnit обнаруживает метод ExampleTestOfNUnit.TestMultiplication () автоматически отражение.[нужна цитата ]

Расширения

FireBenchmarks является добавить в возможность записывать время выполнения модульных тестов и генерировать XML, CSV, XHTML отчеты о производительности с диаграммами и историей отслеживания. Его основная цель - дать возможность разработчику или команде, работающей с гибкая методология интегрировать показатели эффективности и анализ в модульное тестирование среды, чтобы легко контролировать и отслеживать эволюцию программной системы с точки зрения алгоритмическая сложность и загрузка системных ресурсов.[нужна цитата ]

NUnit.Forms является расширением основной структуры NUnit и также имеет открытый исходный код. Он специально рассматривает расширение NUnit, чтобы иметь возможность обрабатывать элементы пользовательского интерфейса тестирования в Windows Forms. По состоянию на январь 2013 года Nunit.Forms находится в альфа-версии, и с мая 2006 года не было выпущено ни одной версии.[нужна цитата ]

NUnit.ASP прекращено[9] расширение до основной структуры NUnit, а также с открытым исходным кодом. В частности, рассматривается расширение NUnit, чтобы иметь возможность обрабатывать элементы пользовательского интерфейса тестирования в ASP.Net.[нужна цитата ]

Смотрите также

Рекомендации

  1. ^ «Тестовый адаптер NUnit 3».
  2. ^ «Параллелизируемый атрибут».
  3. ^ "TestCaseData".
  4. ^ Проуз, Роб (2015-11-04). «Тестирование .NET Core с использованием NUnit 3».
  5. ^ Проуз, Роб (2015-03-25). «Средство выполнения тестов NUnit 3.0 для Android и iOS».
  6. ^ «NUnit Version 3 для Compact Framework».
  7. ^ «NUnit Version 3 для SilverLight 5.0».
  8. ^ "CategoryAttribute". Получено 2015-12-15.
  9. ^ "Главная страница сайта NUnit.ASP". Sourceforge. Получено 2008-04-15.

Библиография

  • Хант, Эндрю; Томас, Дэвид (2007). Прагматическое модульное тестирование на C # с помощью NUnit, 2-е изд. Книжная полка Pragmatic (Роли), 2007. ISBN  0-9776166-7-3.
  • Ньюкирк, Джим; Воронцов, Алексей (2004). Разработка через тестирование в Microsoft .NET. Microsoft Press (Редмонд), 2004. ISBN  0-7356-1948-4.
  • Гамильтон, Билл (2004). Справочник по NUnit Pocket. О'Рейли (Кембридж), 2004. ISBN  0-596-00739-6.

внешняя ссылка