Как заменить Пример из XBehave на AutoMoqDataAttribute Autofixture - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь использовать атрибут AutoMoqDataAttribute с моими сценариями XBehave, но кажется, что когда я делаю это, я использую преимущество, заключающееся в том, что в окнах Resharper или MsTest появляется различная информация о шагах.

Capture

обычно для предоставления данных для ваших тестов в X, если вы используете атрибут Example, но я хочу иметь возможность предоставлять уже настроенные тестовые данные с помощью автофиксации.

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

вот мойкод:

[Scenario]
        [AutoMoqData]
        public void CorrelationId_WhenCorrelationIdIsPassedIn(
            string result,
            string correlationId,
            [Frozen(Matching.DirectBaseType)] DefaultHttpContext httpContext,
            [Frozen] Mock<IHttpContextAccessor> httpContextAccessorMock,
            CorrelationIdProvider sut)
        {
            $"Given a correlation id header value of {correlationId} has been passed in"
                .x(() =>
                {
                    httpContext.Request.Headers["x-Correlation-ID"] = correlationId;
                    httpContextAccessorMock.Setup(x => x.HttpContext).Returns(httpContext);
                });

            "When the correlation id is retrieved"
                .x(() => result = sut.CorrelationId);

            "Then the correlation id is not empty"
                .x(() => result.Should().NotBeEmpty());

            $"And the correlation id matches {correlationId}"
                .x(() => result.Should().Be(result));
        }
 public class AutoMoqDataAttribute : AutoDataAttribute
    {
        public AutoMoqDataAttribute() :
            base(() => new Fixture().Customize(new AutoMoqCustomization()))
        {
        }
    }
...