Для обработки данных в методе SeedData
IExecutionStrategy, применяемый для создания явной транзакции, которая необходима для включения и отключения вставки идентичности. Записи добавляются; если все прошло успешно, тогда транзакция фиксируется, а в противном случае подвергается откату.Приведенные далее два открытых метода используются для сброса базы данных. Метод InitializeData
ClearDatabase просто удаляет все записи, сбрасывает идентичность и заполняет базу начальными данными:public static void InitializeData(ApplicationDbContext context)
{
DropAndCreateDatabase(context);
SeedData(context);
}
public static void ClearAndReseedDatabase(ApplicationDbContext context)
{
ClearData(context);
SeedData(context);
}
Настройка тестов
Вместо создания клиентского приложения для испытания скомпилированного уровня доступа к данным AutoLot
Assert для проверки, получен ли ожидаемый результат.Создание проекта
Первым делом необходимо настроить платформу интеграционного тестирования с использованием xUnit — инфраструктуры тестирования, совместимой с .NET Core. Начните с добавления нового по имени AutoLot.Dal.Tests
На заметку!
Модульные тесты предназначены для тестирования одной единицы кода. Формально повсюду в главе создаются интеграционные тесты, т.к. производится тестирование кода C# и EF Core на всем пути к базе данных и обратно.Введите следующую команду в окне командной строки:
dotnet new xunit -lang c# -n AutoLot.Dal.Tests -o .\AutoLot.Dal.Tests -f net5.0
dotnet sln .\Chapter23_AllProjects.sln add AutoLot.Dal.Tests
Добавьте в проект AutoLot.Dal.Tests
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.Extensions.Configuration.Json
Поскольку версия пакета Microsoft.NET.Test.Sdk, поставляемая с шаблоном проектов xUnit, обычно отстает от текущей доступной версии, воспользуйтесь диспетчером пакетов NuGet для обновления всех пакетов NuGet. Затем добавьте ссылки на проекты AutoLot.Models
AutoLot.Dal.В случае работы с CLI выполните приведенные далее команды(обратите внимание, что команды удаляют и повторно добавляют пакет Microsoft.NET.Test.Sdk
dotnet add AutoLot.Dal.Tests package Microsoft.EntityFrameworkCore
dotnet add AutoLot.Dal.Tests package Microsoft.EntityFrameworkCore.SqlServer
dotnet add AutoLot.Dal.Tests package Microsoft.Extensions.Configuration.Json
dotnet remove AutoLot.Dal.Tests package Microsoft.NET.Test.Sdk
dotnet add AutoLot.Dal.Tests package Microsoft.NET.Test.Sdk
dotnet add AutoLot.Dal.Tests reference AutoLot.Dal
dotnet add AutoLot.Dal.Tests reference AutoLot.Models
Конфигурирование проекта
Для извлечения строки подключения во время выполнения будут задействованы конфигурационные возможности .NET Core, предусматривающие работу с файлом JSON. Добавьте в проект файл JSON по имени appsettings.json
{
"ConnectionStrings": {
Бьёрн Страуструп , Ирина Сергеевна Козлова , Бьерн Страуструп , Валерий Федорович Альмухаметов
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT