Литмир - Электронная Библиотека
A
A

namespace AutoLot.Dal.Tests.IntegrationTests

{

  [Collection("Integation Tests")]

  public class CarTests : BaseTest,

    IClassFixture<EnsureAutoLotDatabaseTestFixture>

  {

  }

}

// CustomerTests.cs

using 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.cs

using 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.cs

using 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
. Вот как выглядит оператор
using
:

using Xunit;

456
{"b":"847442","o":1}