欢迎光临
我们一直在努力

JUnit使用经验(2) — 转自PMT杂志-JSP教程,资料/其它

建站超值云服务器,限时71元/月

junit使用经验(2)


原作:andy schneider richard dallaway 等
编译:pmt 测试工作组


经验四、在子类中调用父类的setup() 和teardown()
让我们看一看下面的代码
public class sometestcase extends anothertestcase {
// a connection to a database
private database thedatabase;
public sometestcase (string testname) {
super (testname);
}
public void testfeaturex () {

}
public void setup () {
// clear out the database
thedatabase.clear ();
}
}
你发现其中的错误了吗?setup()应该调用super.setup() 以确保anothertestcase 中定义的环境被初
始化了。当然这也有例外,就是基类可以处理任意的测试数据。

经验五、不要硬性规定数据文件的路径
我们经常需要从文件系统中读取测试数据,看下面的代码:
public void setup () {
fileinputstream inp ("c:\\testdata\\dataset1.dat");

}
这段代码需要把测试数据文件dataset1.dat 放在c:\testdata,这是有问题的。
第一,c 盘可能没有磁盘空间了测试人员不得不把数据文件放到其他路径;
第二,可能需要在其他操作系统比如linux 上执行这一测试。
所以,一个较好的替代方案是
public void setup () {
fileinputstream inp ("dataset1.dat");

}
但事实上这样仍不是很好,因为这要求数据文件的路径和测试执行的路径必须是同一个,如果几个不同
的测试都这样的话,那要把这些测试集合起来执行就有些困难,我们不得不频繁的改变当前路径。
为了解决这个问题,我们可以使用class.getresource()或者class.getresourceasstream(),这样我
们可以把数据文件放在这个class 的某个相对路径上。
数据文件应该尽可能和源代码一起都放在配置管理系统上,但这样一来如果我们采用上面的resource 机
制,我们就需要做一件工作,就是把数据文件从原来的位置-就是源代码的某个相对路径,拷贝到编译后
的位置,也就是class 文件的相应的相对路径。这其实并不复杂,因为从class 的package 就可以映射到
java文件的所在路径对于linux或者windows我们所要做的就是把package中的. 用
file.separatorchar 替代。

经验六、把测试的代码和被测的代码放在同样的目录下
当我们把测试代码和被测的代码放在同一目录下时,我们就可以在编译被测代码的同时编译测试代码,从
而确保两者是同步更新的。事实上当前的普遍做法,就是把单元测试视为build 的一个环节。

经验七、正确命名测试
把测试用例命名为testclassundertest,比如如果被测的class 是messagelog,那么测试用例就叫
testmessagelog,这样做使得测试用例和被测的class一一对应,而在测试用例中每个测试的method 就
可以命名为
testloggingemptymessage()
testloggingnullmessage()
testloggingwarningmessage()
testloggingerrormessage()
同样是为了说清楚测试的是什么。正确的命名可以帮助测试代码的阅读者了解每个测试的目的。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » JUnit使用经验(2) — 转自PMT杂志-JSP教程,资料/其它
分享到: 更多 (0)