我试图在XBehave方案中使用AutoMoqDataAttribute,但似乎这样做的好处是在Resharper或MsTest窗口中显示了不同的步骤信息。
通常在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()))
{
}
}