Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье вы узнаете, как создавать модульные тесты и тестировать проекты в C# с помощью платформы xUnit с помощью команд Visual Studio и GitHub Copilot. Использование Visual Studio в сочетании с GitHub Copilot значительно упрощает процесс создания и написания модульных тестов.
Создание тестового проекта
Представьте, что есть класс ProductService
с методом GetProductById
, который зависит от интерфейсов IProductDataStorage
и ICacheClient
.
public class ProductService(
IProductDataStorage productDataStorage,
ICacheClient cacheClient)
{
public async Task<Product?> GetProductById(int productId)
{
var product = await cacheClient.GetProduct(productId);
if (product is not null)
{
return product;
}
product = await productDataStorage.GetProduct(productId);
if (product is not null)
{
await _cacheClient.SetProduct(product);
}
return product;
}
}
Чтобы создать тестовый проект и заглушечный метод, выполните следующие действия.
- Выберите метод.
- Щелкните правой кнопкой мыши и выберите Создать модульные тесты.
В диалоговом окне создания модульных тестов выберите xUnit в раскрывающемся меню Test Framework.
Примечание.
Команда создания модульных тестов по умолчанию используется для платформы MSTest. Однако так как в этом примере используется xUnit, необходимо установить расширение Visual Studio xUnit.net.TestGenerator2022.
- Если у вас еще нет тестового проекта, выберите новый тестовый проект или выберите существующий.
- При необходимости укажите шаблон для пространства имен, класса и имени метода, а затем нажмите кнопку ОК.
Через несколько секунд Visual Studio извлечет необходимые пакеты, и вы получите созданный проект xUnit с необходимыми пакетами и структурой, с ссылкой на тестируемый проект, классом и методом-заглушкой.
Создание самих тестов
Выберите тестируемый метод еще раз.
Щелкните правой кнопкой мыши и выберите "Ask Copilot".
Введите простой запрос, например:
"Создание модульных тестов с помощью xunit, nsubstitute и вставка результата в файл #ProductServiceTests".
При вводе
#
символа необходимо выбрать тестовый класс.
Подсказка
Для быстрого поиска желательно, чтобы ProductServiceTests
открывалось на отдельной вкладке.
Выполните запрос, нажмите Принять, и Copilot сгенерирует тестовый код. После этого необходимо установить необходимые пакеты.
После установки пакетов можно выполнить тесты. Этот пример сработал с первого раза: Copilot знает, как работать с NSubstitute, и все зависимости были определены через интерфейсы.