我有我想存根的方法,但是它有很多的参数。 我怎样才能避免嘲讽的所有参数,但仍存根方法。

例如:

//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“代表团”)。

和在下次有机会,提交错误报告对项目要求的参数移到配置对象。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top