4

Когда я правая кнопка мыши класс в моем коде приложения в качестве 4.6 проекта ASP.NET MVC, то у меня есть этот вариант для создания модульного теста:Создание модульных тестов в ядре ASP.NET

enter image description here

Но в моем ASP.NET Core (VS2015 Core 1.0.0 Tooling Preview 2) у меня нет этой опции, когда я нажимаю правой кнопкой мыши класс.

Я читал, что XUnit теперь является рекомендуемой базой тестов для проектов ASP.NET Core. Нельзя ли использовать старую хорошую платформу Microsoft Unit Testing Framework?

Действительно ли мы вынуждены использовать XUnit сейчас?

Update: Похоже, будет совместима версия MSTest Framework в будущем ->SO Thread.

Для ASP.NET ядра RC2: Announcing MSTest Framework support for .NET Core RC2/ASP.NET Core RC2 Как я не хочу, чтобы переключиться на XUnit.

+0

спасибо. Я помог мне .... –

ответ

0

На данный момент вы можете использовать либо MS Test, NUnit и XUnit для Dotnet основных приложений. XUnit предпочтительнее, чем современная платформа тестирования. Основным профи для XUnit является способ создания и запуска тестов.

XUnit создает новый экземпляр на тест метод в то время как другие создать новый экземпляр на тест класса и запустить все методы из того же экземпляра. (Поэтому им нужны такие вещи, как [Setup] и [TearDown]).

Этот способ запуска методов испытаний имеет 2 преимущества:

  1. Методы испытаний не будут зависеть друг от друга, поскольку они не будут делить любое поле или свойство, которое является хорошей практикой. Поэтому разработчики спонтанно вынуждены изолировать методы тестирования.

  2. Параллельное выполнение XUnit могло бы работать лучше, поскольку оно запускает все методы тестирования параллельно, а не NUnit, которые не могут одновременно запускать тестовые методы в одном классе.

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

Заключение: вы не вынуждены использовать XUnit для ваших основных приложений .net, но вам лучше сделать это.