在本文中,我将向您展示使用JUnit 4.8.1实现的简单单元测试。
下面是要测试的类的代码:
1 | public class MyUnit { |
我会保持这个类使其简单,让我们更容易理解发生了什么。
单元测试
要测试这个类,我需要一个单元测试来测试每个公共方法。该类只有一个公共方法,concatenate(),所以我需要测试的是这种方法。
单元测试被实现为具有测试方法的类。每个测试方法通常测试目标类的单一方法。有时,测试方法可以测试目标类中的多个方法,有时,如果要测试的方法很大,则将测试拆分为多个测试方法。这是JUnit单元测试,测试concatenate()方法:
1 | import org.junit.Test; |
单元测试类是一个普通类,有一个方法testConcatenate()。注意这个方法如何用JUnit注释@Test进行注释。这是为了向单元测试运行者发信号,这个方法代表d单元测试,应该执行。没有使用@Test注释的方法不会被测试运行器执行。在testConcatenate()方法的内部创建一个MyUnit的实例。 它将使用两个字符串值 作为参数调用oncatenate()方法。
最后,assertEquals()方法被调用,这种方法是做实际测试的。在这种方法中,我们将被调用的方法(concatenate())的输出与预期输出进行比较。换句话说,我们将“onetwo”(预期输出)与concatenate()方法返回的值进行比较,该值保存在变量result中。
如果两个值相等,则不会发生任何反应。assertEquals()方法返回正常。如果两个值不相等,则会抛出异常,并在此处停止执行测试方法。
assertEquals()方法是静态导入的方法,通常位于org.junit.Assert类中。注意这个类导入的地方在MyUnitTest顶部。使用方法的静态导入比写Assert.assertEquals()要短。
您可以根据需要在单元测试类中拥有尽可能多的测试方法。 测试执行器会发下他们,并执行他们。 在这个例子中,我只写了一个测试方法。
这是使用Junit4.8.2进行单元测试的简单例子。