JUnit - 扩展类

JUnit - 扩展类 首页 / JUnit入门教程 / JUnit - 扩展类

以下是JUnit扩展-

  • Cactus
  • JWebUnit
  • XMLUnit

Cactus

Cactus是用于对服务器端Java代码(Servlet,EJB,Tag Lib,Filters)进行单元测试的简单测试框架。Cactus的目的是降低编写服务器端代码测试的成本。它使用JUnit并将其扩展。

由几个部分组成-

  • Cactus Framework 是Cactus 的核心,它是提供用于编写​​Cactus测试的API的引擎。

  • Cactus Integration Modules 是提供使用Cactus Framework的简便方法的前端和框架。

以下代码演示了如何使用Cactus。

import org.apache.cactus.*;
import junit.framework.*;

public class TestSampleServlet extends ServletTestCase {
   @Test
   public void testServlet() {
      //初始化要测试的类
      SampleServlet servlet = new SampleServlet();

      //将会话中的变量设置为 doSomething()
      //我们正在测试的方法
      session.setAttribute("name", "value");

      //调用方法进行测试,传递一个HttpServletRequest object(for example)
      String result = servlet.doSomething(request);

      //执行验证测试是否成功
      assertEquals("something", result);
      assertEquals("otherValue", session.getAttribute("otherName"));
   }
}

JWebUnit

JWebUnit是用于Web应用程序的基于Java的测试框架。它使用统一,简单的测试界面包装了诸如HtmlUnit和Selenium之类的现有测试框架,以测试Web应用程序的正确性。

这是示例代码。

import junit.framework.TestCase;
import net.sourceforge.jwebunit.WebTester;

public class ExampleWebTestCase extends TestCase {
   private WebTester tester;
   
   public ExampleWebTestCase(String name) {
      super(name);
      tester = new WebTester();
   }
	
   //set base url
   public void setUp() throws Exception {
      getTestContext().setBaseUrl("http://myserver:8080/myapp");
   }
	
   //test base info
   @Test
   public void testInfoPage() {
      beginAt("/info.html");
   }
}

XMLUnit

XMLUnit提供了一个JUnit扩展类XMLTestCase和一组支持类,这些类允许对以下内容进行声明:

  • 两段XML之间的差异(通过Diff和DetailDiff类)。

  • 一段XML的有效性(通过Validator类)。

  • 使用XSLT(通过Transform类)转换XML片段的输出。

  • 在XML上对XPath表达式的求值(通过实现XpathEngine接口的类)。

  • 通过DOM遍历(通过NodeTest类)公开的XML中的各个节点。

让无涯教程假设要比较两个XML,并断言它们是相等的。可以编写一个像这样的简单测试类-

import org.custommonkey.xmlunit.XMLTestCase;

public class MyXMLTestCase extends XMLTestCase {

   //this test method compare two pieces of the XML
   @Test
   public void testForXMLEquality() throws Exception {
      String myControlXML = "<msg><uuid>0x00435A8C</uuid></msg>";
      String myTestXML = "<msg><localId>2376</localId></msg>";
      assertXMLEqual("Comparing test xml to control xml", myControlXML, myTestXML);
   }
}

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

硅谷产品实战36讲 -〔曲晓音〕

微服务架构实战160讲 -〔杨波〕

Nginx核心知识150讲 -〔陶辉〕

程序员的数学基础课 -〔黄申〕

Kafka核心技术与实战 -〔胡夕〕

RPC实战与核心原理 -〔何小锋〕

如何落地业务建模 -〔徐昊〕

HarmonyOS快速入门与实战 -〔QCon+案例研习社〕

Rust 语言从入门到实战 -〔唐刚〕

好记忆不如烂笔头。留下您的足迹吧 :)