xUnit: передать приспособление в качестве аргумента типа другому приспособлению IClassFixture - PullRequest
0 голосов
/ 31 октября 2018

У меня есть базовое приспособление и производное приспособление. И я пытаюсь поставить в качестве базового приспособления параметра типа в другое.
Законно ли как все?

Потому что я получаю эту ошибку:

System.AggregateException: произошла одна или несколько ошибок. (Учебный класс Тип приспособления «WebApplicationFixture» имел одно или несколько неразрешенных аргументы конструктора: фабрика WebApplicationFactory 1 factory) (The following constructor parameters did not have matching fixture data: WebApplicationFixture fixture) ---- Class fixture type 'WebApplicationFixture' had one or more unresolved constructor arguments: WebApplicationFactory 1 ---- Следующие параметры конструктора не имеют соответствующих данных фикстуры: WebApplicationFixture fixture

----- Внутренняя трассировка стека # 1 (Xunit.Sdk.TestClassException) -----

----- Внутренняя трассировка стека # 2 (Xunit.Sdk.TestClassException) -----

    public class WebApplicationFixture : IClassFixture<WebApplicationFactory<Startup>>, IDisposable
    {
        protected internal readonly string AbsoluteUri;
        protected internal readonly HttpClient HttpClient;
        protected internal readonly HttpMessageHandler HttpMessageHandler;

        public WebApplicationFixture(WebApplicationFactory<Startup> factory)
        {
            HttpClient = factory.CreateClient();
            HttpMessageHandler = factory.Server.CreateHandler();
            AbsoluteUri = factory.Server.BaseAddress.AbsoluteUri;
        }

        public void Dispose()
        {
            HttpClient?.Dispose();
            HttpMessageHandler?.Dispose();
        }
    }

public class BasicTests : IClassFixture<WebApplicationFixture>, IDisposable
{
    public BasicTests(WebApplicationFixture fixture)
    {
        _fixture = fixture;
        _clientBuilder = _fixture.ClientBuilder;
    }

    public void Dispose()
    {
        _fixture.Dispose();
    }

    private readonly WebApplicationFixture _fixture;

}
...