Язык программирования C#9 и платформа .NET5
Часть 456 из 642 Информация о книге
namespace AutoLot.Dal.Tests.IntegrationTests{[Collection("Integation Tests")]public class CarTests : BaseTest,IClassFixture<EnsureAutoLotDatabaseTestFixture>{}}// CustomerTests.csusing System.Collections.Generic;using System;using System.Linq;using System.Linq.Expressions;using AutoLot.Dal.Tests.Base;using AutoLot.Models.Entities;using Microsoft.EntityFrameworkCore;using Xunit;namespace AutoLot.Dal.Tests.IntegrationTests{[Collection("Integation Tests")]public class CustomerTests : BaseTest,IClassFixture<EnsureAutoLotDatabaseTestFixture>{}}// MakeTests.csusing System.Linq;using AutoLot.Dal.Repos;using AutoLot.Dal.Repos.Interfaces;using AutoLot.Dal.Tests.Base;using AutoLot.Models.Entities;using Microsoft.EntityFrameworkCore;using Microsoft.EntityFrameworkCore.ChangeTracking;using Xunit;namespace AutoLot.Dal.Tests.IntegrationTests{[Collection("Integation Tests")]public class MakeTests : BaseTest,IClassFixture<EnsureAutoLotDatabaseTestFixture>{}}// OrderTests.csusing System.Linq;using AutoLot.Dal.Repos;using AutoLot.Dal.Repos.Interfaces;using AutoLot.Dal.Tests.Base;using Microsoft.EntityFrameworkCore;using Xunit;namespace AutoLot.Dal.Tests.IntegrationTests{[Collection("Integation Tests")]public class OrderTests : BaseTest,IClassFixture<EnsureAutoLotDatabaseTestFixture>{}}Добавьте в класс
конструктор, который создает экземплярMakeTestsи присваивает его закрытой переменнойMakeRepoуровня класса. Переопределите методreadonlyи освободите в нем экземплярDispose():MakeRepo[Collection("Integration Tests")]public class MakeTests : BaseTest,IClassFixture<EnsureAutoLotDatabaseTestFixture>{private readonly IMakeRepo _repo;public MakeTests(){_repo = new MakeRepo(Context);}public override void Dispose(){_repo.Dispose();}...}Повторите те же действия для класса
, но с использованиемOrderTestsвместоOrderRepo:MakeRepo[Collection("Integration Tests")]public class OrderTests : BaseTest,IClassFixture<EnsureAutoLotDatabaseTestFixture>{private readonly IOrderRepo _repo;public OrderTests(){_repo = new OrderRepo(Context);}public override void Dispose(){_repo.Dispose();}...}Тестовые методы [Fact] и [Theory]
Тестовые методы без параметров называются фактами (и задействуют атрибут
). Тестовые методы, которые принимают параметры, называются теориями (они используют атрибут[Fact]) и могут выполнять множество итераций с разными значениями, передаваемыми в качестве параметров. Чтобы взглянуть на такие виды тестов, создайте в проекте[Theory]новый файл класса по имениAutoLot.Dal.Tests. Вот как выглядит операторSampleTests.cs:usingusing Xunit;