【发布时间】:2016-11-10 16:41:30
【问题描述】:
给定一个接口如下:
interface ISomething
{
void Method(int arg1, string arg2, double arg3, OtherType arg4);
}
用于与 RhinoMocks 进行模拟
ISomething something = MockRepository.GenerateMock<ISomething>();
我知道在我的测试中从未调用过的唯一方法如下:
something.Expect(_ => _.Method(
Arg<int>.Is.Anything,
Arg<string>.Is.Anything,
Arg<double>.Is.Anything,
Arg<OtherType>.Is.Anything)
).Repeat.Never();
这太丑了。对于根本不调用方法的特殊情况,是否有更短的方法来执行此操作?
【问题讨论】:
-
你可以存根它抛出一个异常。
-
someting.AssertWasNotCalled(s => s.Method(...))? -
使用
Arg是不可能的。如果有太多参数是问题,那么这意味着问题出在方法的设计上(代码味道)。测试的问题往往会揭示代码设计的问题。干净的代码导致干净的单元测试
标签: .net unit-testing mocking rhino-mocks