的Mockito:如何轻松存根的方法没有嘲讽的所有参数
-
22-09-2019 - |
题
我有我想存根的方法,但是它有很多的参数。 我怎样才能避免嘲讽的所有参数,但仍存根方法。
例如:
//Method to stub
public void myMethod(Bar bar, Foo foo, FooBar fooBar, BarFoo barFoo, .....endless list of parameters..);
解决方案
我不太明白你正在使用的Mockito有什么问题。假设你创建包含myMethod()
方法,则可以仅验证的参数,你有兴趣的方法中的接口的一个模拟例如(假设接口称为MyInterface
和使用JUnit 4):
@Test
public void test() {
MyInterface myInterface = mock(MyInterface.class);
FooBar expectedFooBar = new FooBar();
// other testing stuff
verify(myInterface).myMethod(any(), any(), eq(expectedFooBar), any(), ...);
}
您需要做的方法的Mockito一个静态导入这个工作。该any()
匹配不关心验证时已通过什么样的价值。
您无法避免的东西传递每个参数在你的方法(哪怕它只是NULL)。
其他提示
使用mockito.any
如果MyObj中的MyMethod接受字符串,字符串,酒吧例如
末梢的呼叫
Mockito.when(myojb.myMethod(Mockito.anyString(),Mockito.anyString(),Mockito.any(Bar.class)))
.thenReturn(amockedobject);
,以验证SteveD答曰已经
Mockito.verify(myojb).myMethod(
Mockito.anyString(),Mockito.anyString(),Mockito.any(Bar.class)));
创建包装类调用的所有参数,但您提供的那些真正的方法和填充(a.k.a“代表团”)。
和在下次有机会,提交错误报告对项目要求的参数移到配置对象。
不隶属于 StackOverflow