评估传递给从另一个类调用的模拟方法的参数

时间:2019-08-27 17:53:42

标签: java mockito

我正在测试一个使用我嘲笑的另一个类的类。外部类的方法之一修改了传递给模拟类的方法的参数,我需要检查是否正确修改了该参数。

代码看起来像这样:

<ion-item>
<ion-label position="floating" color="danger">email</ion-label>
<ion-input type="text" value="{{email}}" ng-model="email"></ion-input>
</ion-item> 

我需要检查是否传递了以public class Foo { public boolean performTask(String name, Integer version) { ... } } public class Bar { private Foo foo; public Bar(Foo foo) { this.foo = foo; } public void doSomething(String name, Integer version) { boolean good = foo.performTask(name, ((version.startsWith("A")) ? null : version)); ... } } 开头的name参数,然后传递给A的第二个参数为空。

编辑:

根据要求,这是单元测试的开始:

performTask()

1 个答案:

答案 0 :(得分:1)

  

我看到的所有使用verify的示例都涉及直接调用模拟类。在这种情况下如何使用?

就是这样。您所需要做的就是访问您拥有的模拟程序。

Mockito.verify(mockFoo, Mockito.times(1)).performTask("ABC", null);

如果方法return的重要性(默认为false), 您将需要使用以下方式定义行为:

Mockito.when(mockFoo.performTask("ABC", null)).thenReturn(true);

示例:

@Test
public void test() throws Exception {
    Mockito.when(mockFoo.performTask("ABC", null)).thenReturn(true);

    Bar bar = new Bar(mockFoo);
    bar.doSomething("ABC", new Integer(1));

    Mockito.verify(mockFoo, Mockito.times(1)).performTask("ABC", null);
}