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);
   }
}

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

技术教程推荐

趣谈网络协议 -〔刘超〕

分布式技术原理与算法解析 -〔聂鹏程〕

互联网人的英语私教课 -〔陈亦峰〕

MySQL 必知必会 -〔朱晓峰〕

玩转Vue 3全家桶 -〔大圣〕

说透低代码 -〔陈旭〕

人人都用得上的数字化思维课 -〔付晓岩〕

后端工程师的高阶面经 -〔邓明〕

云原生基础架构实战课 -〔潘野〕

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