xUnit由私有静态字段共享上下文



通过创建private static字段共享上下文的方法有哪些缺点?

public class MyTests3 : IDisposable
{
private static Mock<ILogger> _loggerMock = new Mock<ILogger>();
public void Dispose()
{
_loggerMock.Invocations.Clear();
}
[Fact]
public void Debug_OnInit_CalledOnce()
{
// arrange & act
_loggerMock.Object.Debug("first");

// assert
_loggerMock.Verify(l => l.Debug(It.IsAny<string>()), Times.Once);
}

[Fact]
public void Debug_OnExecute_CalledOnce()
{
// arrange & act
_loggerMock.Object.Debug("second");

// assert
_loggerMock.Verify(l => l.Debug(It.IsAny<string>()), Times.Once);
}
}

另一个问题是,我应该在测试完成后为mock对象调用Reset吗?

您应该避免在测试之间共享状态。它可能会产生不需要的和不可预测的行为,尤其是当测试并行运行时。

这也是为什么更喜欢辅助方法来设置和取消最佳实践的原因之一。

相关内容

  • 没有找到相关文章

最新更新