什么是 Junit 测试框架?
JUnit 是一个回归测试框架,被开发者用于实施对应用程序的单元测试,加快程序编制速度,同时提高编码的质量。JUnit 测试框架能够轻松完成以下任意两种结合:
JUnit 测试框架具有以下重要特性:
测试工具是一整套固定的工具用于基线测试。测试工具的目的是为了确保测试能够在共享且固定的环境中运行,因此保证测试结果的可重复性。它包括:
让我们来看一个例子:
import junit.framework.*;
public class JavaTest extends TestCase {
protected int value1, value2;
// assigning the values
protected void setUp(){
value1=3;
value2=3;
}
// test method to add two values
public void testAdd(){
double result= value1 + value2;
assertTrue(result == 6);
}
}
测试套件意味捆绑几个测试案例并且同时运行。在 JUnit 中,@RunWith 和 @Suite 都被用作运行测试套件。以下为使用 TestJunit1 和 TestJunit2 的测试分类:
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
//JUnit Suite Test
@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());
}
}
测试运行器 用于执行测试案例。以下为假定测试分类成立的情况下的例子:
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());
}
}
测试分类是在编写和测试 JUnit 的重要分类。几种重要的分类如下:
以下是 JUnit 扩展CactusJWebUnitXMLUnitMockObjectCactusCactus 是一个简单框架用来测试服务器端的 Java 代码(Servlets, EJBs,...
动态SQL是MyBatis的强大特性之一。如果你使用过JDBC或其它类似的框架,你应该能理解根据不同条件拼接SQL语句有多痛苦,例如...
Spring 声明式事务管理声明式事务管理方法允许你在配置的帮助下而不是源代码硬编程来管理事务。这意味着你可以将事务管理从事务...
Servlet Session 跟踪HTTP 是一种"无状态"协议,这意味着每次客户端检索网页时,客户端打开一个单独的连接到 Web 服务器,服务器...
Swift 可选(Optionals)类型Swift 的可选(Optional)类型,用于处理值缺失的情况。可选表示"那儿有一个值,并且它等于 x "或者"...
盒语法和模式目前,唯一稳定可靠地方法就是通过 Box::new 方法来创建 Box。当然,它不可能在稳定的 Rust 来析构匹配模式下的 B...
MATLAB 中数据导出表明可以将数据写入文件。MATLAB 允许你使用数据在另一个应用程序读取 ASCII 文件,MATLAB提供了多种数据输出...
交互Julia 有一个全功能的交互式命令行 REPL (read-eval-print 循环)内置在可执行的 julia 内。除了允许快速并且简易的评定 Ju...