我有多个单元测试,在这里我检查是否调用了一个方法。
我使用NSubstitute模拟库进行检查,而是借助“ Received()”方法调用了一个方法,就像这样:
MessageHandling.Received().Submit(Messages.DATA_EXPORT_SUCCESS);
当我分别运行它们时,这些测试运行良好,但是当全部运行它们时,其中一些由于没有明显的原因而失败。在调试代码时,我看到应该调用的方法已被调用,但是NSubstitute的Received()方法表示根本没有调用。
我也确实在我的TearDown方法中调用了ClearReceivedCalls()
MessageHandling.ClearReceivedCalls();
但这似乎无济于事。
使用Received()方法时,我还有其他需要注意的事情吗?
我的测试功能要比检查呼叫复杂得多,但这是我的测试失败的唯一原因。
答案 0 :(得分:1)
我假设MessageHandling被初始化为单个实例属性,该属性在每次测试中都使用?通过在每个测试中初始化一个新的模拟实例,尝试使您的测试类变为无状态。