1、Junit - 概述
JUnit 是一个 Java编程语言的单元测试框架。 JUnit 在测试驱动的开发方面有很重要的发展,是起源于 JUnit 的一个统称为 xUnit 的单元测试框架之一。
作为开发者应该 在用 Java 编程语言做单元测试时,使用 JUnit。 使用 JUnit 来处理所有 Java 项目的开发。
2、Junit - 环境设置
JUnit 是 Java 的一个框架,所以最根本的需要是在你的机器里装有 JDK。    步骤6:测试 JUnit 建立
在 C:\ > JUNIT_WORKSPACE 中创建一个 java 类文件,名称为 TestJunit。
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class TestJunit {
@Test
public void testAdd() {
String str= "Junit is working fine";
assertEquals("Junit is working fine",str);
}
}
在 C:\ > JUNIT_WORKSPACE 中创建一个 java 类文件,名称为TestRunner,来执行测试用例。
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());
}
}
步骤7:验证结果
利用 javac 编译器按照以下方式编写类。
C:\JUNIT_WORKSPACE>javac TestJunit.java TestRunner.java
现在运行 Test Runner 来看结果。
C:\JUNIT_WORKSPACE>java TestRunner
验证输出。
ture
3、JUnit - 测试框架
 1、测试工具
测试工具是一整套固定的工具用于基线测试。测试工具的目的是为了确保测试能够在共享且固定的环境中运行,因此保证测试结果的可重复性。它包括:
在所有测试调用指令发起前的 setUp() 方法。
在测试方法运行后的 tearDown() 方法。
让我们来看一个例子:
import junit.framework.*;
public class JavaTest extends TestCase {
protected int value1, value2;
protected void setUp(){
value1=3;
value2=3;
}
public void testAdd(){
double result= value1 + value2;
assertTrue(result == 6);
}
}
2、测试套件 测试套件意味捆绑几个测试案例并且同时运行。 在 JUnit 中,@RunWith 和 @Suite 都被用作运行测试套件。 以下为使用 TestJunit1 和 TestJunit2 的测试分类:
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({
TestJunit1.class ,TestJunit2.class
})
public class JunitTestSuite {
}
import org.junit.Test;
import org.junit.Ignore;
import static org.junit.Assert.assertEquals;
public class TestJunit1 {
String message = "Robert";
MessageUtil messageUtil = new MessageUtil(message);
@Test
public void testPrintMessage() {
System.out.println("Inside testPrintMessage()");
assertEquals(message, messageUtil.printMessage());
}
}
import org.junit.Test;
import org.junit.Ignore;
import static org.junit.Assert.assertEquals;
public class TestJunit2 {
String message = "Robert";
MessageUtil messageUtil = new MessageUtil(message);
@Test
public void testSalutationMessage() {
System.out.println("Inside testSalutationMessage()");
message = "Hi!" + "Robert";
assertEquals(message,messageUtil.salutationMessage());
}
}
3、测试运行器 测试运行器 用于执行测试案例。 以下为假定测试分类成立的情况下的例子:
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());
}
}

|