我正在测试一个使用我嘲笑的另一个类的类。外部类的方法之一修改了传递给模拟类的方法的参数,我需要检查是否正确修改了该参数。
代码看起来像这样:
<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()
答案 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);
}