SpecFlow IObjectContainer: как зарегистрировать и использовать несколько объектов одного типа? - PullRequest
2 голосов
/ 11 февраля 2020

Вот мой класс Hooks в SpecFlow.

 public sealed class Hooks
    {
        private readonly IObjectContainer _objectContainer;

        public ConcurApiHooks(IObjectContainer objectContainer)
        {
            _objectContainer = objectContainer;
        }

        [BeforeScenario]
        public void BeforeScenario()
        {   
            var httpClient1 = new HttpClient();
            var httpClient2 = new HttpClient();

            _objectContainer.RegisterInstanceAs(httpClient1, "client1");
            _objectContainer.RegisterInstanceAs(httpClient2, "client2");
        }

        [AfterScenario]
        public void AfterScenario()
        {
            //TODO: implement logic that has to run after executing each scenario
        }
    }

Я хочу зарегистрировать два клиента HttpClient, поскольку они будут содержать разные базовые конечные точки, аутентификацию и т. Д. c. Вплоть до этого момента все это действует и SpecFlow позволяет это делать.

Я не могу заставить это работать, потому что это потребление в моем классе Steps.

    [Binding]
    public sealed class ApiSteps : Steps
    {
        public ConcurApiSteps(HttpClient httpClient1, HttpClient httpClient2)
        {

        }
    }

Is Есть ли способ сделать это? Я бы так подумал из-за того, что вы можете назвать экземпляр, который вы зарегистрировали, но я не могу заставить его работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...