当我 运行 行中有多个文本时,NSubstitute Received() 不起作用,但是如果我 运行 单独测试它们会起作用
NSubstitue Received() does not work when I run multible test in row, but if I run the test individually they work
我有多个单元测试,我会在其中检查是否调用了某个方法。
我使用 NSubstitute 模拟库来检查在 "Received()" 方法的帮助下调用了一个方法,就像那样:
MessageHandling.Received().Submit(Messages.DATA_EXPORT_SUCCESS);
当我单独 运行 测试时,测试工作正常,但是当 运行 所有测试时,其中一些测试无缘无故地失败了。当我调试代码时,我看到应该调用的方法被调用了,但是 NSubstitute 的 Received() 方法说根本没有调用。
我也在我的 TearDown 方法中调用了 ClearReceivedCalls()
MessageHandling.ClearReceivedCalls();
但这似乎没有帮助。
在使用 Received() 方法时,还有什么我应该注意的吗?
我的测试功能比检查呼叫要复杂一些,但这是我的测试失败的唯一原因。
我假设 MessageHandling 被初始化为单个实例 属性,每个测试都使用它?通过在每个测试中初始化一个新的模拟实例,尝试使您的测试 class 无状态。
我有多个单元测试,我会在其中检查是否调用了某个方法。
我使用 NSubstitute 模拟库来检查在 "Received()" 方法的帮助下调用了一个方法,就像那样:
MessageHandling.Received().Submit(Messages.DATA_EXPORT_SUCCESS);
当我单独 运行 测试时,测试工作正常,但是当 运行 所有测试时,其中一些测试无缘无故地失败了。当我调试代码时,我看到应该调用的方法被调用了,但是 NSubstitute 的 Received() 方法说根本没有调用。
我也在我的 TearDown 方法中调用了 ClearReceivedCalls()
MessageHandling.ClearReceivedCalls();
但这似乎没有帮助。
在使用 Received() 方法时,还有什么我应该注意的吗?
我的测试功能比检查呼叫要复杂一些,但这是我的测试失败的唯一原因。
我假设 MessageHandling 被初始化为单个实例 属性,每个测试都使用它?通过在每个测试中初始化一个新的模拟实例,尝试使您的测试 class 无状态。