有配置文件有关的测试

简介:
问题:
一个系统有一些信息放在一个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;
    }

}
目录
相关文章
|
Java 测试技术 数据库
测试用例的基本要素 && properties配置文件 && 测试用例的基本要素 && SpringMVC背景知识 && 按照开发阶段划分测试类型
测试用例的基本要素 && properties配置文件 && 测试用例的基本要素 && SpringMVC背景知识 && 按照开发阶段划分测试类型
59 0
|
8天前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
16 1
|
6月前
|
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)
290 3
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
|
5月前
|
XML Web App开发 Java
《手把手教你》系列技巧篇(七十)-java+ selenium自动化测试-Java中如何读取properties配置文件内容(详解教程)
【6月更文挑战第11天】本文介绍了Java自动化测试中读取properties配置文件的方法。文章首先说明了为何要将配置参数放在properties文件中,然后简述了properties文件的作用和常用的读取方式,包括通过`java.util.Properties`类和`java.util.ResourceBundle`类。接着详细列举了`Properties`类的主要方法,如`getProperty()`、`load()`、`setProperty()`和`store()`等。
41 1
|
6月前
|
分布式计算 Hadoop 数据安全/隐私保护
HDFS--HA部署安装:修改配置文件 测试集群工作状态的一些指令
HDFS--HA部署安装:修改配置文件 测试集群工作状态的一些指令
79 0
|
11月前
|
监控 测试技术 Go
【测试平台系列】第一章 手撸压力机(六)- 日志服务及使用yaml配置文件
上一章节我们封装TO(测试对象),方便我们以后扩展其他被测的接口或协议。本章我们主要实现以下,我们的日志输出。
|
IDE 测试技术 开发工具
软件测试|如何在Pycharm中配置文件头部信息
软件测试|如何在Pycharm中配置文件头部信息
78 0
|
SQL 分布式计算 资源调度
|
Java Apache 流计算
|
消息中间件 Kafka Apache