void方法的JUNIT测试用例
我有一个方法,我必须编写它的JUnit测试用例。它只调用项目的主要处理方法,不做其他事情。此外,主处理方法的返回类型也为void 我该如何测试这种“方法1” 给定一个类:void方法的JUNIT测试用例,junit,Junit,我有一个方法,我必须编写它的JUnit测试用例。它只调用项目的主要处理方法,不做其他事情。此外,主处理方法的返回类型也为void 我该如何测试这种“方法1” 给定一个类: public class A { private Obj obj1; public void method1() { obj1.mainProcessingMethod(); } public void setObj1(Obj obj1) { this.obj
public class A {
private Obj obj1;
public void method1() {
obj1.mainProcessingMethod();
}
public void setObj1(Obj obj1) {
this.obj1 = obj1;
}
}
在这个类的测试中,唯一要测试的是验证方法obj1.mainProcessingMethod()
是否只被调用了一次
您可以通过Mockito实现这一点
import org.junit.Test;
import org.mockito.Mockito;
public class ATest {
private Obj obj1 = Mockito.mock(Obj.class);
private A a = new A();
@Test
public void testMethod1() {
a.setObj1(obj1);
a.method1();
Mockito.verify(obj1).mainProcessingMethod();
}
}
在这里,您为类Obj
创建一个模拟对象,将其注入a
的实例中,然后使用模拟对象检查它记录了哪些方法调用。给定一个类:
public class A {
private Obj obj1;
public void method1() {
obj1.mainProcessingMethod();
}
public void setObj1(Obj obj1) {
this.obj1 = obj1;
}
}
在这个类的测试中,唯一要测试的是验证方法obj1.mainProcessingMethod()
是否只被调用了一次
您可以通过Mockito实现这一点
import org.junit.Test;
import org.mockito.Mockito;
public class ATest {
private Obj obj1 = Mockito.mock(Obj.class);
private A a = new A();
@Test
public void testMethod1() {
a.setObj1(obj1);
a.method1();
Mockito.verify(obj1).mainProcessingMethod();
}
}
在这里,您为类
Obj
创建一个模拟对象,将其注入a
的实例中,然后使用模拟对象检查它记录了哪些方法调用。在测试中,您需要验证对象obj1上是否调用了方法mainProcessingMethod()
你可以用像
Mockito.verify(yourMockObject);
在测试中,您需要验证是否对对象obj1调用了方法mainProcessingMethod() 你可以用像
Mockito.verify(yourMockObject);
这个方法有什么作用?该方法的结果/结果是什么?它写文件吗?它会改变数据库吗?它只是调用另一个方法。除此之外,没有什么是必须做的。这个方法做什么?该方法的结果/结果是什么?它写文件吗?它会改变数据库吗?它只是调用另一个方法。除此之外,我们还必须做一些事情,这也是注入模拟对象的好方法:
@Mock Obj obj1@InjectMock A A
@SergiiGetman,这一点很好,但我们还必须提到,测试类应该用@RunWith(MockitoJUnitRunner.class)
进行注释,以便实现这一点@InjectMock A A@SergiiGetman,这一点很好,但我们还必须提到,测试类应该使用@RunWith(MockitoJUnitRunner.class)
进行注释,以使其工作。