如何用Autofixture的AutoMoqDataAttribute替换XBehave中的Example

时间:2019-05-07 07:40:18

标签: autofixture xbehave.net

我试图在XBehave方案中使用AutoMoqDataAttribute,但似乎这样做的好处是在Resharper或MsTest窗口中显示了不同的步骤信息。

Capture

通常在X中为测试提供数据,因为您使用了Example属性,但我希望能够使用自动修复功能提供已经设置好的测试数据。

我可以看到有人遇到了类似的问题here,并且他们创建了这个问题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()))
        {
        }
    }

0 个答案:

没有答案