Тестирование в .NET

В этой статье рассматривается концепция тестирования и демонстрируется использование разных тестов для проверки кода. Для тестирования приложений .NET существует много средств, например .NET CLI и интегрированные среды разработки (IDE).

Типы тестов

Наличие автоматических тестов — отличный способ убедиться, что код приложения работает именно так, как задумывалось разработчиками. В этой статье рассматриваются модульные тесты, интеграционные тесты и нагрузочные тесты.

Модульные тесты

Модульный тест позволяет проверить отдельные программные компоненты или методы, также именуемые "единицей работы". Модульные тесты должны проверять только тот код, который может изменять конкретный разработчик. В них не затрагиваются аспекты инфраструктуры. К инфраструктуре здесь относятся любые взаимодействия с базами данных, файловыми системами и сетевыми ресурсами.

Дополнительные сведения о создании модульных тестов см. в документации по средствам тестирования.

Интеграционные тесты

Тест интеграции отличается от модульного теста тем, что он позволяет двум или более программным компонентам работать совместно, также называемый интеграцией. Эти тесты работают в более широком спектре тестируемой системы, в то время как модульные тесты сосредоточены на отдельных компонентах. Интеграционные тесты часто содержат некоторые элементы взаимодействия с инфраструктурой.

Нагрузочные тесты

Нагрузочный тест определяет, может ли система справиться с заданным уровнем нагрузки, например выдержать определенное число одновременных подключений пользователей к приложению и быстро отвечать на запросы взаимодействия. Дополнительные сведения о нагрузочном тестировании веб-приложений см. в статье Нагрузочное тестирование в ASP.NET Core.

Рекомендации по тестированию

Не забывайте, что для написания тестов есть рекомендации. Например, метод разработки на основе тестирования подразумевает, что модульный тест всегда пишется раньше того кода, который он проверяет. Разработка на основе тестирования аналогична созданию оглавления книги до того, как вы начнете ее писать. Она помогает разработчикам писать более простой, удобочитаемый и эффективный код.

Средства тестирования

Платформа .NET поддерживает разработку на разных языках программирования и создание тестов разных типов для C#, F# и Visual Basic. Для каждого из этих языков можно выбрать любую из нескольких платформ тестирования.

xUnit

xUnit — это бесплатное средство модульного тестирования для .NET с открытым кодом и широкой поддержкой сообщества. Это новейшая технология для модульного тестирования приложений .NET, созданная первым разработчиком NUnit v2. xUnit.net поддерживает ReSharper, CodeRush, TestDriven.NET и Xamarin. Это проект .NET Foundation, поэтому он работает в соответствии с их правилами поведения.

Дополнительные сведения см. в следующих ресурсах:

NUnit

NUnit — это платформа модульного тестирования для всех языков .NET. Изначально она была перенесена из JUnit, а текущий рабочий выпуск основательно переработан с добавлением новых функций и широкого спектра поддерживаемых платформ .NET. Это проект .NET Foundation.

Дополнительные сведения см. в следующих ресурсах:

MSTest

MSTest — это тестовая платформа корпорации Майкрософт для всех языков .NET. Она поддерживает расширение и работу с .NET CLI и Visual Studio. Дополнительные сведения см. в следующих ресурсах:

Интерфейс командной строки.NET

Модульные тесты для решений можно выполнять в .NET CLI с помощью команды dotnet test. .NET CLI предоставляет почти все функциональные возможности, доступные через пользовательские интерфейсы интегрированных сред разработки. .NET CLI работает на многих платформах и успешно встраивается в конвейеры непрерывной интеграции и доставки. .NET CLI используется в скриптах процессов, выполняющих автоматизацию типичных задач.

IDE

Независимо от того, используете ли вы Visual Studio, Visual Studio для Mac или Visual Studio Code, вам будут доступны графические пользовательские интерфейсы для тестирования функций. Для сред IDE предоставляется больше возможностей, чем доступно в CLI, например Live Unit Testing. Дополнительные сведения см. в разделе о добавлении и исключении тестов в Visual Studio.

См. также

Дополнительные сведения см. в следующих статьях: