测试
白盒测试:由软件开放工程师来测试,只有自己开放的东西自己才知道是怎么运作的..
又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。
它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,
检验程序中的每条通路是否都能按预定要求正确工作。 这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
白盒测试是一种测试用设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。
"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。
单元测试(junit)属于白盒测试.
使用junit4.x:
junit4.x基于Java5开始的版本,支持注解.
步骤:
1.把junit4.x的测试jar,添加到该项目中来;
2.定义一个测试类.(不再继承TestCase类)
测试类的名字: XxxTest
3.在EmployeeDAOTest中编写测试方法:如
@Test
public void testXxx() throws Exception {
}
注意:方法是public修饰的,无返回的,该方法上必须贴有@Test标签,XXX表示测试的功能名字.
4.选择某一个测试方法,鼠标右键选择 [run as junit],或则选中测试类,表示测试该类中所有的测试方法.
以后单元测试使用最多的方式:
若要在测试方法之前做准备操作:
EmployeeDAOTest随意定义一个方法并使用@Before标注:
@Before
public void xx() throws Exception方法
若要在测试方法之后做回收操作:
EmployeeDAOTest随意定义一个方法并使用@After标注:
@After
public void xx() throws Exception方法
特点:每次执行测试方法之前都会执行Before方法,每次执行测试方法之后都会执行After方法;
有没有方式之初始化一次,和最终销毁一次呢?
@BeforeClass标签:在所有的Before方法之前执行,只在最初执行一次. 只能修饰静态方法
@AfterClass标签:在所有的After方法之后执行,只在最后执行一次. 只能修饰静态方法
执行顺序: BeforeClass->(Before->Test-After多个测试方法)-->AfterClass
一般的,我们使用断言方式来做单元测试.
什么是断言: 期望结果和真实的一样.
期望值:
真实值: 程序运行之后真正的结果.
断言成功: 真实值和期望值相同. 显示绿条.
断言失败: 真实值和期望值不同. 显示红条.
①:Assert.assertEquals(message, expected, actual):比较的值,比较两个对象值存储的数据.
三个参数:
message: 断言失败的提示信息,断言成功不会显示.
expected: 期望值
actual: 真实值
若真实值和期望值想等,则断言成功.--->绿条
②:Assert.assertSame(message, expected, actual):比较地址,是同一个对象
Assert.assertNotSame(message, expected, actual):断言不是同一个对象
③:Assert.assertTrue(message, condition):断言condition应该为TRUE.
④:Assert.assertFalse(message, condition):断言condition应该为FALSE.
⑤:Assert.assertNull(message, object):断言对象object为null.
⑥:Assert.assertNotNull(message, object):断言对象object不为null.
⑦:@Test(expected=ArithmeticException.class)
期望该方法报错,报错ArithmeticException.
⑧:@Test(timeout=400)
期望该方法在400毫秒之内执行完成.
之前使用的properties文件,为什么得使用XML文件:
properties格式文件,结构很简单,只能表示key=value的结构形式.
比如:我现在想表示:中国所有的省份,每个省份所有的城市,如何表示?
XML(eXtensible Markup Language),是一种可扩展的标记语言,类似HTML。
XML技术是W3C组织(World Wide Web Consortium万维网联盟)发布的,目前遵循的是W3C组织于2000年发布的XML1.0规范。
XML被广泛认为是继Java之后在Internet上最激动人心的新技术。
HTML: 显示页面,网页. 学习里面自带的标签<html>
XML: 传输数据,少量数据的存储,而非显示数据。
XML标签没有被预定义,需要用户自行定义标签。
为什么要学XML:
XML是一种通用的数据交换格式
许多系统的配置文件都使用XML格式
JSP文档也逐步向XML语法格式过渡
许多项目都采用XML作为数据交换格式
在日常应用中会经常看见XML格式的文件
掌握XML是软件开发人员的一项基本技能
Struts1.x,struts2.x,spring,hibernate,mybatis等任意一个java ee框架中都要用到XML。
XML结构清晰(树桩结构),不仅让人能够明白,还让计算机也能够明白。
XML作为一种公订的、开放的标准,不受知识产权的限制。
XML文件的语法(语法是规定):
XML有两个编码: 要保证两个编码相同,都为UTF-8
内容编码:
文件本身的编码:
一个XML文档必须有且仅有一个根标签,不允许标签嵌套,区分大小写。
在编写XML文档时,需要先使用文档声明来声明XML文档。且必须出现在文档的第一行。
最简单的语法:
如:<?xml version=“1.0”?>
用encoding属性说明文档所使用的字符编码,默认为UTF-8。保存在磁盘上的文件编码要与声明的编码一致。
如:<?xml version=“1.0” encoding=“UTF-8”?>
用standalone属性说明文档是否独立,即是否依赖其他文档。
如:<?xml version=“1.0” standalone=“yes”?>
CDATA是Character Data的缩写
作用:把标签当做普通文本内容;
语法:<![CDATA[数据内容]]>
作用:
解析器不对CDATA区中的内容进行解析,而是将这些数据原封不动地交给程序去处理。
DOM:Document Object Model:文档对象模型,把文档中的成员描述成一个个对象. (js操作HTML)
导包的时候注意引入的是:org.w3c包中的.
特点:
一次性把整个XML文件内容加载进内存中,从而在内存中形成一颗树对象(Document),接下来我们的操作都是操作的是内存中的Document对象,和磁盘中的XML文件没有关系.
保存一个新的联系人,删除一个联系人,修改一个联系人信息-------->内存的Document对象.
同步操作:把内存中的数据同步到磁盘的XML文件中来.
DOM操作弱点:如果XML文件过大,加载进内存的时候可能造成内存溢出.
获取Document(文档)对象:
0):确定解析哪一个XML文件:
File f = new File(“H:\JavaApps\Java基础加强\contacts.xml”);
1):创建DocumentBuilderFactotry对象,一般的,工厂类中都有存在一个静态方法用于返回自身对象(类似于单例).
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
2):再通过DocumentBuilderFactory对象来创建DocumentBuilder对象.
DocumentBuilder builder = factory.newDocumentBuilder();
3):再通过DocumentBuilder对象,创建一个Document对象.
Document doc = builder.parse(f);
记住操作某一个知识点的核心类:DocumentBuilferFactory
网友评论