一个简单的单元测试

时间:2020-01-09 10:35:39  来源:igfitidea点击:

在本文中,我将向我们展示一个使用JUnit 4.8.1实现的简单单元测试。

首先,我将向我们展示我要测试的课程:

public class MyUnit {

    public String concatenate(String one, String two){
        return one + two;
    }
}

我使课程非常简单,以使其易于理解正在发生的事情。

单元测试

为了测试该类,我需要一个单元测试来测试其每个公共方法。该类只有一个公共方法,即concatenate(),因此我需要测试的就是这种方法。

单元测试通过测试方法作为类来实现。每个测试方法通常测试目标类的单个方法。有时,一个测试方法可以测试目标类中的多个方法,有时,如果要测试的方法很大,则将测试拆分为多个测试方法。

这是测试concatenate()方法的JUnit单元测试:

import org.junit.Test;
import static org.junit.Assert.*;

public class MyUnitTest {

    @Test
    public void testConcatenate() {
        MyUnit myUnit = new MyUnit();

        String result = myUnit.concatenate("one", "two");

        assertEquals("onetwo", result);

    }
}

单元测试类是一个普通类,带有一个方法" testConcatenate()"。注意,如何用JUnit批注@ Test批注此方法。这样做是为了向单元测试运行程序发出信号,该方法表示应该执行的单元测试。测试运行器不会执行未使用@Test注释的方法。

在testConcatenate()方法内部,创建了MyUnit的实例。然后用两个字符串值调用concatenate()方法。

最后,调用" assertEquals()"方法。正是这种方法进行了实际测试。在此方法中,我们将调用方法(concatenate())的输出与预期输出进行比较。换句话说,我们将" onetwo"(预期的输出)与" concatenate()"方法返回的值进行比较,该值保存在变量"结果"中。

如果两个值相等,则什么也不会发生。 AssertEquals()方法正常返回。如果两个值不相等,则会引发异常,并且test方法在此处停止执行。

AssertEquals()方法是静态导入的方法,通常位于org.junit.Assert类中。注意,在" MyUnitTest"的顶部,该类的静态导入。使用静态导入方法比编写Assert.assertEquals()要短。

我们可以根据需要在单元测试类中使用任意数量的测试方法。测试运行者将找到所有这些,并执行它们中的每一个。在此示例中,我只用一种测试方法就足够了,以保持清楚。

而已。这就是使用JUnit 4.8.2进行单元测试的简单程度。