有配置文件有关的测试

简介:
问题:
一个系统有一些信息放在一个XML文件中,由于此XML文件会经常变动,所以写Test Case不能依赖此XML文件,否则在使用中每一次XML正常的变动都会导致TestCase出错。那么该如何测试呢。

解决方案一:
将XML的内容用字符串的方式写在TestCase中。如下所示,这个TestCase主要是测试ViewXMLParser这个类的parse方法,这个方法的作用是将XML配置文件中的信息转化成一个个的Bean。

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.util.List;

import junit.framework.TestCase;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

/**
 * 
@author  chengang 2006-3-6
 
*/
public  class TestViewParser  extends TestCase {
     private String xml1;
     private String xml2;

     public TestViewParser() {
        {
             // 一个完整的测试,及测试可选项
            StringBuffer sb =  new StringBuffer();
            sb.append("<?xml version=\"1.0\" encoding=\"GB2312\"?>");
            sb.append("<jmxui>");
            sb.append("     <views>");
            sb.append("       <view id=\"LogTestView\">");
            sb.append("             <operation name=\"storeConfig1\"/>");
            sb.append("             <attributes>");
            sb.append("                   <attribute name=\"times\" description=\"时间值\"/>");
            sb.append("                   <attribute name=\"logs\" description=\"日志数\"/>");
            sb.append("             </attributes>");
            sb.append("       </view>");
            sb.append("       <view id=\"LogConfigView\" class=\"com.wxxr.management.admin.console.jmx.custom.ui.CustomComposite\"/>");
            sb.append("     </views>");
            sb.append("</jmxui>");
            xml1 = sb.toString();
        }
        {
             // 测试特别情况
            StringBuffer sb =  new StringBuffer();
            sb.append("<?xml version=\"1.0\" encoding=\"GB2312\"?>");
            sb.append("<jmxui>");
            sb.append("     <views>");
            sb.append("     </views>");
            sb.append("</jmxui>");
            xml2 = sb.toString();
        }
    }

     /*
     * Test method for 'com.wxxr.management.admin.console.jmx.custom.JmxXmlReader.getGroupNodes()'
     
*/
     public  void testParse()  throws Exception {
        Element viewsElement = getViewsElement(xml1);
        List<ViewBean> list =  new ViewXMLParser().parse(viewsElement);
        assertEquals(2, list.size());
        {
            ScriptViewBean bean = (ScriptViewBean) list.get(0);
            assertEquals("LogTestView", bean.getId());
            assertEquals(ScriptComposite. class.getName(), bean.getViewClass());
            assertEquals("org.jnp.interfaces.NamingContextFactory", node.getFactory());
            assertEquals("jnp://localhost:1099", node.getUrl());
            assertEquals("jmx/rmi/RMIAdaptor", node.getJndi());
        }
        {
            CustomViewBean bean = (CustomViewBean) list.get(1);
            assertEquals("LogConfigView", bean.getId());
            assertEquals("com.wxxr.management.admin.console.jmx.custom.ui.CustomComposite", bean.getViewClass());
        }
    }

     private Element getViewsElement(String xml) {
        InputStream inputStream  new  ByteArrayInputStream(xml.getBytes());
        Document doc =  null;
         try {
            SAXReader reader =  new SAXReader();
            doc = reader.read(inputStream);
        }  catch (DocumentException e) {
            e.printStackTrace();
        }

        Element root = doc.getRootElement();
        Element viewsElement = root.element("views");
         return viewsElement;
    }

}
目录
相关文章
|
6月前
|
Java 测试技术 数据库
测试用例的基本要素 && properties配置文件 && 测试用例的基本要素 && SpringMVC背景知识 && 按照开发阶段划分测试类型
测试用例的基本要素 && properties配置文件 && 测试用例的基本要素 && SpringMVC背景知识 && 按照开发阶段划分测试类型
38 0
|
3月前
|
SQL Java 数据库连接
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
【1月更文挑战第2天】 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)
200 3
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
|
4月前
|
分布式计算 Hadoop 数据安全/隐私保护
HDFS--HA部署安装:修改配置文件 测试集群工作状态的一些指令
HDFS--HA部署安装:修改配置文件 测试集群工作状态的一些指令
44 0
|
4月前
|
监控 测试技术 Go
【测试平台系列】第一章 手撸压力机(六)- 日志服务及使用yaml配置文件
上一章节我们封装TO(测试对象),方便我们以后扩展其他被测的接口或协议。本章我们主要实现以下,我们的日志输出。
|
SQL 分布式计算 资源调度
|
Java Apache 流计算
|
消息中间件 Kafka Apache
|
JSON 安全 Java
分布式整合之认证服务配置文件编写和测试|学习笔记
快速学习分布式整合之认证服务配置文件编写和测试
194 0
分布式整合之认证服务配置文件编写和测试|学习笔记
|
存储 分布式计算 Hadoop
一脸懵逼学习Hadoop-HA机制(以及HA机制的配置文件,测试)
1:能否让两个NameNode都正常影响客户端请求?   应该让两个NameNode节点在某个时间只能有一个节点正常影响客户端请求,相应请求的必须为Active状态的那一台。 2:standBy状态的节点必须能够快速无缝的切换为active状态:   意味着两个NameNode必须时刻保持元数...
1388 0
|
分布式计算 Java Hadoop
Hadoop-2.8.0集群搭建、hadoop源码编译和安装、host配置、ssh免密登录、hadoop配置文件中的参数配置参数总结、hadoop集群测试,安装过程中的常见错误
25. 集群搭建 25.1 HADOOP集群搭建 25.1.1集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据的存储,集群中的角色主要有NameNode / DataNode YARN集群: 负责海量数据运算时的资源调度,集群中的角色主要有 ResourceManager /NodeManag
4665 0