每当我使用 Moq 4.12 在任何模拟中调用 .Reset 时,它都会显式重置有关模拟的所有内容,从设置到事件处理程序。
moqActionFactory.Reset();
Run Code Online (Sandbox Code Playgroud)
如何仅重置已配置的设置?我没有看到任何方法或属性(如 Invoices.Clear)可以执行此操作。
Owe*_*ing 10
我不相信这是可能的。
Reset()在MockExtensions.cs中实现为:
public static void Reset(this Mock mock)
{
mock.ConfiguredDefaultValues.Clear();
mock.Setups.Clear();
mock.EventHandlers.Clear();
mock.Invocations.Clear();
}
Run Code Online (Sandbox Code Playgroud)
这样看起来就简单了,我们只要调用Clear()集合即可Setups!但这在Mock.cs中定义为:
internal abstract SetupCollection Setups { get; }
Run Code Online (Sandbox Code Playgroud)
此外,SetupCollection也是内部的。
因此,除非这里可以完成一些反射魔法,否则从 Moq 源代码来看似乎没有受支持的方法来做到这一点。
| 归档时间: |
|
| 查看次数: |
4352 次 |
| 最近记录: |