JUnit - API
JUnit中最重要的包是junit.framework ,它包含所有核心类。 一些重要的课程如下 -Sr.No.class名称功能
1Assert一组断言方法。
2TestCase测试用例定义了用于运行多个测试的夹具。
3TestResultTestResult收集执行测试用例的结果。
4TestSuiteTestSuite是测试的组合。
断言类
以下是org.junit.Assert类的声明 -public class Assert extends java.lang.Object
该类提供了一组用于编写测试的断言方法。 仅记录失败的断言。 Assert类的一些重要方法如下 -Sr.No.方法和描述
1void assertEquals(boolean expected, boolean actual)
检查两个基元/对象是否相等。
2void assertFalse(boolean condition)
检查条件是否为假。
3void assertNotNull(Object object)
检查对象是否为空。
4void assertNull(Object object)
检查对象是否为空。
5void assertTrue(boolean condition)
检查条件是否为真。
6void fail()
没有消息就失败了。
我们在一个例子中使用一些上述方法。 在C:\》JUNIT_WORKSPACE创建名为TestJunit1.java的java类文件。import org.junit.Test;
import static org.junit.Assert.*;
public class TestJunit1 {
@Test
public void testAdd() {
//test data
int num = 5;
String temp = null;
String str = "Junit is working fine";
//check for equality
assertEquals("Junit is working fine", str);
//check for false condition
assertFalse(num > 6);
//check for not null value
assertNotNull(str);
}
}
接下来,在C:\“JUNIT_WORKSPACE中创建名为TestRunner1.java的java类文件以执行测试用例。import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner1 {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestJunit1.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
使用javac编译测试用例和Test Runner类。C:\JUNIT_WORKSPACE>javac TestJunit1.java TestRunner1.java
现在运行Test Runner,它将运行在提供的Test Case类中定义的测试用例。C:\JUNIT_WORKSPACE>java TestRunner1
验证输出。true
TestCase类
以下是org.junit.TestCase类的声明 -public abstract class TestCase extends Assert implements Test
测试用例定义了用于运行多个测试的夹具。 TestCase类的一些重要方法如下 -Sr.No.方法和描述
1int countTestCases()
计算run(TestResult结果)执行的测试用例数。
2TestResult createResult()
创建默认的TestResult对象。
3String getName()
获取TestCase的名称。
4TestResult run()
一种方便的方法来运行此测试,使用默认的TestResult对象收集结果。
5void run(TestResult result)
运行测试用例并在TestResult中收集结果。
6void setName(String name)
设置TestCase的名称。
7void setUp()
设置夹具,例如,打开网络连接。
8void tearDown()
例如,撕下夹具,关闭网络连接。
9String toString()
返回测试用例的字符串表示形式。
我们在一个例子中使用一些上述方法。 在C:\“JUNIT_WORKSPACE中创建名为TestJunit2.java的java类文件。import junit.framework.TestCase;
import org.junit.Before;
import org.junit.Test;
public class TestJunit2 extends TestCase {
protected double fValue1;
protected double fValue2;
@Before
public void setUp() {
fValue1 = 2.0;
fValue2 = 3.0;
}
@Test
public void testAdd() {
//count the number of test cases
System.out.println("No of Test Case = "+ this.countTestCases());
//test getName
String name = this.getName();
System.out.println("Test Case Name = "+ name);
//test setName
this.setName("testNewAdd");
String newName = this.getName();
System.out.println("Updated Test Case Name = "+ newName);
}
//tearDown used to close the connection or clean up activities
public void tearDown( ) {
}
}
接下来,在C:\“JUNIT_WORKSPACE中创建名为TestRunner2.java的java类文件以执行测试用例。import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner2 {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestJunit2.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
使用javac编译测试用例和Test Runner类。C:\JUNIT_WORKSPACE>javac TestJunit2.java TestRunner2.java
现在运行Test Runner,它将运行在提供的Test Case类中定义的测试用例。C:\JUNIT_WORKSPACE>java TestRunner2
验证输出。No of Test Case = 1
Test Case Name = testAdd
Updated Test Case Name = testNewAdd
true
TestResult类
以下是org.junit.TestResult类的声明 -public class TestResult extends Object
TestResult收集执行测试用例的结果。 它是收集参数模式的一个实例。 测试框架区分故障和错误。 预计会出现故障并通过断言进行检查。 错误是像ArrayIndexOutOfBoundsException这样的意外问题。 TestResult类的一些重要方法如下 -Sr.No.方法和描述
1void addError(Test test, Throwable t)
向错误列表添加错误。
2void addFailure(Test test, AssertionFailedError t)
在故障列表中添加故障。
3void endTest(Test test)
通知结果测试已完成。
4int errorCount()
获取检测到的错误数。
5Enumeration《TestFailure》 errors()
返回错误的枚举。
6int failureCount()
获取检测到的失败次数。
7void run(TestCase test)
运行TestCase。
8int runCount()
获取运行测试的数量。
9void startTest(Test test)
通知结果将开始测试。
10void stop()
标记测试应该停止。
在C:\“JUNIT_WORKSPACE中创建名为TestJunit3.java的java类文件。import org.junit.Test;
import junit.framework.AssertionFailedError;
import junit.framework.TestResult;
public class TestJunit3 extends TestResult {
// add the error
public synchronized void addError(Test test, Throwable t) {
super.addError((junit.framework.Test) test, t);
}
// add the failure
public synchronized void addFailure(Test test, AssertionFailedError t) {
super.addFailure((junit.framework.Test) test, t);
}
@Test
public void testAdd() {
// add any test
}
// Marks that the test run should stop.
public synchronized void stop() {
//stop the test here
}
}
接下来,在C:\“JUNIT_WORKSPACE中创建名为TestRunner3.java的java类文件以执行测试用例。import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner3 {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestJunit3.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
使用javac编译测试用例和Test Runner类。C:\JUNIT_WORKSPACE>javac TestJunit3.java TestRunner3.java
现在运行Test Runner,它将运行在提供的Test Case类中定义的测试用例。C:\JUNIT_WORKSPACE>java TestRunner3
验证输出。true
TestSuite类
以下是org.junit.TestSuite类的声明:public class TestSuite extends Object implements Test
TestSuite是一个综合测试。 它运行一组测试用例。 TestSuite类的一些重要方法如下 -Sr.No.方法和描述
1void addTest(Test test)
在套件中添加测试。
2void addTestSuite(Class《? extends TestCase》 testClass)
将给定类的测试添加到套件中。
3int countTestCases()
计算此测试将运行的测试用例数。
4String getName()
返回套件的名称。
5void run(TestResult result)
运行测试并在TestResult中收集结果。
6void setName(String name)
设置套件的名称。
7Test testAt(int index)
返回给定索引处的测试。
8int testCount()
返回此套件中的测试数。
9static Test warning(String message)
返回将失败的测试并记录警告消息。
在C:\“JUNIT_WORKSPACE中创建一个名为JunitTestSuite.java的java类文件,以创建测试套件。import junit.framework.*;
public class JunitTestSuite {
public static void main(String[] a) {
// add the test's in the suite
TestSuite suite = new TestSuite(TestJunit1.class, TestJunit2.class, TestJunit3.class );
TestResult result = new TestResult();
suite.run(result);
System.out.println("Number of test cases = " + result.runCount());
}
}
使用javac编译Test套件类。C:\JUNIT_WORKSPACE>javac JunitTestSuite.java
现在运行测试套件。C:\JUNIT_WORKSPACE>java JunitTestSuite
验证输出。No of Test Case = 1
Test Case Name = testAdd
Updated Test Case Name = testNewAdd
Number of test cases = 3
JUnit - 基本用法( Basic Usage)