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,并断言它们是相等的。可以编写一个像这样的简单测试类-

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讲 -〔刘建国〕

Swift核心技术与实战 -〔张杰〕

即时消息技术剖析与实战 -〔袁武林〕

Netty源码剖析与实战 -〔傅健〕

小马哥讲Spring核心编程思想 -〔小马哥〕

如何读懂一首诗 -〔王天博〕

讲好故事 -〔涵柏〕

大厂设计进阶实战课 -〔小乔〕

超级访谈:对话毕玄 -〔毕玄〕

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