第四天:
作业:
Entry类相当于暴露给对外的一个接口,提供一个人口类,并不是main方法,
等run的时候,在NEW这个入口类,
StringUtil:
StringUtils.countMatches(p_str, p_key)
FilenameUtils:
concat()路径和文件名相连接
getExtension()获取扩展名
getBaseName()
getFullpath()
FileUtils.readFileToString(new File(p_path), System.getProperty("file.encoding"))
把我们string给读出来了
filename单独写一个类的作用:
因为只是针对windows,字段分隔符是用
Linux还是windows用这个可以取后缀、全名等等,方便我们使用。
Junit:
Juni3------
是java测试框架的鼻祖
Junit已经默认集成到eclipase里了,它已经默认为eclipase的插件了
它也就是一个jar包
右击--others---testcase
选择junit 3 test setup eardown
public class Mytcase01 extends TestCase
可以看出,因为继承了testcase类,就junit3中怎么默认我们这个类是个junit3的测试类呢?
就因为它继承了TestCase
在junit中不通过打印输出校验用例通过与否
而是用断言 assertEquals,校验用例成功与否
验证测试通过与否
setup 前置条件 --初始化你的测试(有时候某些环境需要初始化的)
Teardown 后置条件 ---完成测试后,对你这个测试整个整理(做完测试一些账号和数据要干掉)
在执行case之前,都会执行setup
在执行每个case之后,都会执行teardown
每执行一次用例,setup和teardown都执行一次
AssertTrue验证条件是否真,
AssertNull验证方法返回值是否是null 的
AssertSame验证2个引用的值是否是相等的
我们运行junit是一个case一个case运行
批量运行testcase---others--testsuit
我们的测试用例可以通过suite方式给保管起来,
创建junit4:
除了和3一样勾选setup和teardown以外还要
SetupberforeClass和TeardownAfterclass
@berforeClass和@Afterclass
在你整个case初始化之前执行的,整个case初始化完成到case运行。到case结束,到最后后面执行Afterclass,是全局的,
一个是在最前面运行,一个是在最后面执行
@berfore和@After 相当于Junit3中的setup和teardown
Junit4中的标签:
@Test(timeout=xxx)--验证一个case在多少时间内通过
@Test(expected=Exception.class)--进行异常的校验
@ignore 相当于对case进行注释,被选为ignore 的case不会被执行
Case不通过是failed,failed和error是有区别的,
failed可理解为程序可控的一个failed,比如说验证一个值通过不通过,通过就pass,不通过就failed。
红叉代表出现了一些异常。
AssertThat相当于也是一个断言,除此之外,多了一些比对功能,
assertThat("developerWorks",new StringEndsWith( "s" ));
比如验证前面那个值是否以s开头,提供了一些方法进行字符串的分析,
但是用处不是很大,我们完全可以这样写:
assertEquals(true,"developerWorks".startsWith("d"));
我们完全没有必要用assertThat改进的一些方法,
Junit 的Suite:
@RunWith(Suite.class) 空类,因为所有执行逻辑都是通过标签完成的
@SuiteClasses({ Junit4Case1.class, Junit4Case2.class })
---把需要的case放到这里面
public class AllTests {
}
模拟登录系统:
Apache.commons.configuration 方便我们进行做配置处理
不仅对Properties类型文件进行读写还可以xml、、、、文件进行解析处理,
我们后期做日志系统的时候会用到Windows INI files
我们用Properties类模拟数据的存储,
Containskey验证某一个值是否存在,是否包含这个key
做完写入的时候必须要保存下save
Addproperty 加一些值
Getproperty 通过key 的值得到values的值
Setproperty(key,values)可以更新values的值