Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
void方法的JUNIT测试用例_Junit - Fatal编程技术网

void方法的JUNIT测试用例

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

我有一个方法,我必须编写它的JUnit测试用例。它只调用项目的主要处理方法,不做其他事情。此外,主处理方法的返回类型也为void

我该如何测试这种“方法1”

给定一个类:

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)
进行注释,以使其工作。