NSubstitute CouldNotSetReturnDueToNoLastCallException

NSubstitute CouldNotSetReturnDueToNoLastCallException

我正在使用 NSubstitute 通过 PartsOf() 方法模拟 class(我需要一些方法才能工作)。它看起来像这样:

var mock = Substitute.ForPartsOf<MyWorker>();
mock.Start().Returns(void);

一个简单的代码,几乎与 NSubstitute 的文档中的代码相似,但我得到的却是这个异常:"An exception of type 'NSubstitute.Exceptions.CouldNotSetReturnDueToNoLastCallException' occurred in NSubstitute.dll but was not handled in user code Additional information: Could not find a call to return from."

有什么问题?

我花了一些时间才弄明白。使用 ForPartsOf() 时,模拟方法必须是 virtual!这解决了 CouldNotSetReturnDueToNoLastCallException 异常的问题。