出于兴趣,在使用 Moq 测试框架进行模拟时不包括设置会产生什么影响?
Just out of interest, what is the impact of not including a setup while mocking using Moq test framework?
我只是想知道在最小起订量单元测试期间不包括设置的影响 运行。我只使用 Moq.Verify 来查看我的函数是否被调用,没有别的。
- 在 void 方法上什么都不会发生
- 方法的 return 值将是
default(T)
- 部分模拟(
CallBase = true
);虚方法的真正实现会执行
- 严格模拟;任何非设置方法的调用都会引发异常。
- 在测试结束时调用
.VerifyAll()
将不会执行任何操作。
- 您将无法从方法(
callback
, raise
) 中引发额外的操作
在您的情况下,您似乎根本不必使用设置方法...
这取决于您的模拟对象将使用哪个 MockBehavior
。
如果它将是 Strict
并且您的代码正在尝试执行未设置的方法,则测试方法将抛出类似 Moq.MockException: Class.Method() invocation failed with mock behavior Strict. All invocations on the mock must have a corresponding setup.
的异常。
如果它是 Loose
那么它永远不会抛出 returns 默认值或空数组,可枚举等,如果没有为成员设置期望。
我只是想知道在最小起订量单元测试期间不包括设置的影响 运行。我只使用 Moq.Verify 来查看我的函数是否被调用,没有别的。
- 在 void 方法上什么都不会发生
- 方法的 return 值将是
default(T)
- 部分模拟(
CallBase = true
);虚方法的真正实现会执行 - 严格模拟;任何非设置方法的调用都会引发异常。
- 在测试结束时调用
.VerifyAll()
将不会执行任何操作。 - 您将无法从方法(
callback
,raise
) 中引发额外的操作
在您的情况下,您似乎根本不必使用设置方法...
这取决于您的模拟对象将使用哪个 MockBehavior
。
如果它将是
Strict
并且您的代码正在尝试执行未设置的方法,则测试方法将抛出类似Moq.MockException: Class.Method() invocation failed with mock behavior Strict. All invocations on the mock must have a corresponding setup.
的异常。如果它是
Loose
那么它永远不会抛出 returns 默认值或空数组,可枚举等,如果没有为成员设置期望。