现在让我们有一个基本的例子来演示使用JUnit的逐步过程.
创建一个类
创建一个要测试的java类,比如, C中的MessageUtil.java:\> JUNIT_WORKSPACE
/** This class prints the given message on console.*/public class MessageUtil { private String message; //Constructor //@param message to be printed public MessageUtil(String message){ this.message = message; } // prints the message public String printMessage(){ System.out.println(message); return message; } }
创建测试用例类
创建一个java测试类,比如,TestJunit.java.
将测试方法testPrintMessage()添加到测试类中.
向方法testPrintMessage()添加Annotaion @Test.
使用JUnit的assertEquals API实现测试条件并检查条件.
在 C:\> JUNIT_WORKSPACE 中创建一个java类文件名TestJunit.java.
import org.junit.Test;import static org.junit.Assert.assertEquals;public class TestJunit { String message = "Hello World"; MessageUtil messageUtil = new MessageUtil(message); @Test public void testPrintMessage() { assertEquals(message,messageUtil.printMessage()); }}
创建测试运行器类
创建一个TestRunner java类.
使用JUnit的JUnitCore类的runClasses方法来运行上面创建的测试类的测试用例.
获取在结果对象中运行的测试用例的结果.
使用Result对象的getFailures()方法获取失败.
使用Result对象的wasSuccessful()方法获取成功结果.
在 C:\中创建名为TestRunner.java的java类文件> JUNIT_WORKSPACE 执行测试用例.
import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(TestJunit.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println(result.wasSuccessful()); }}
使用javac编译MessageUtil,Test case和Test Runner类.
C:\ JUNIT_WORKSPACE> javac MessageUtil.java TestJunit.java TestRunner.java
现在运行测试Runner,它将运行在提供的Test Case类中定义的测试用例.
C:\ JUNIT_WORKSPACE> java TestRunner
验证输出.
Hello World true
现在在 C:\> JUNIT_WORKSPACE 中更新TestJunit,以便测试失败.更改消息字符串.
import org.junit.Test;import static org.junit.Assert.assertEquals;public class TestJunit { String message = "Hello World"; MessageUtil messageUtil = new MessageUtil(message); @Test public void testPrintMessage() { message = "New Word"; assertEquals(message,messageUtil.printMessage()); }}
让我们按原样保留其余的类,并尝试运行相同的Test Runner.
import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(TestJunit.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println(result.wasSuccessful()); }}
现在运行Test Runner,它将运行在提供的Test Case类中定义的测试用例.
C:\ JUNIT_WORKSPACE> java TestRunner
验证输出.
Hello WorldtestPrintMessage(TestJunit): expected:<[New Wor]d> but was:<[Hello Worl]d>false