Читаем Язык программирования C#9 и платформа .NET5 полностью

На заметку! Модульные тесты предназначены для тестирования одной единицы кода. Формально повсюду в главе создаются интеграционные тесты, т.к. производится тестирование кода 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 перечисленные ниже пакеты NuGet:

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

<p id="AutBody_Root1014"><strong>Конфигурирование проекта</strong></p>

Для извлечения строки подключения во время выполнения будут задействованы конфигурационные возможности .NET Core, предусматривающие работу с файлом JSON. Добавьте в проект файл JSON по имени appsettings.json и поместите в него информацию о своей строке подключения в следующем формате (надлежащим образом скорректировав ее):

{

  "ConnectionStrings": {

    "AutoLot": "server=.,5433;Database=AutoLotFinal;

    User Id=sa;Password=P@ssw0rd;"

  }

}

Модифицируйте файл проекта, чтобы файл appsettings.json копировался в выходной каталог при каждой компиляции проекта, для чего добавьте в файл AutoLot.Dal.Tests.csproj такой элемент ItemGroup:

  

    Always

  

<p id="AutBody_Root1015"><strong>Создание класса TestHelpers</strong></p>

Класс TestHelpers будет обрабатывать конфигурацию приложения, а также создавать новый экземпляр ApplicationDbContext. Создайте в корневом каталоге проекта новый файл открытого статического класса по имени TestHelpers.cs. Приведите операторы using к следующему виду:

using System.IO;

using AutoLot.Dal.EfStructures;

using Microsoft.EntityFrameworkCore;

using Microsoft.EntityFrameworkCore.Storage;

using Microsoft.Extensions.Configuration;

namespace AutoLot.Dal.Tests

{

  public static class TestHelpers

  {

  }

}

Определите два открытых статических метода, предназначенные для создания экземпляров реализации IConfiguration и класса ApplicationDbContext. Добавьте в класс показанный ниже код:

public static IConfiguration GetConfiguration() =>

  new ConfigurationBuilder()

    .SetBasePath(Directory.GetCurrentDirectory())

    .AddJsonFile("appsettings.json", true, true)

    .Build();

public static ApplicationDbContext GetContext(IConfiguration configuration)

{

  var optionsBuilder = new DbContextOptionsBuilder();

  var connectionString = configuration.GetConnectionString("AutoLot");

   optionsBuilder.UseSqlServer(connectionString,

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных