我最近一直在使用 RhinoMocks,但我一直遇到问题。如果我在模拟处于记录模式时闯入调试器并单步执行代码,我最终会遇到以下异常:
System.InvalidOperationException: Previous method 'SuchAndSuch.ToString();'
requires a return value or an exception to throw.
但是,如果我在不中断调试器的情况下执行相同的代码,它将成功执行并创建模拟。
我很确定这是因为调试器在对象上调用 ToString() 以在 Locals 和其他 Watch 窗口中显示它们。但由于模拟处于记录模式,RhinoMocks 认为对 ToString() 的调用是一种期望设置,因此并不完全正确。显然,这只发生在具体类的部分模拟中。针对接口的模拟不会表现出这种行为。
其他人遇到过这个问题吗?有什么简单的补救措施吗?其他框架如 moq 或 TypeMock 是否有此问题?
谢谢,
〜贾斯汀