追求代码质量 - 可反复的系统测试[Java编程]
本文“追求代码质量 - 可反复的系统测试[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在本质上,像 JUnit 和 TestNG 一样的测试框架便利了可反复性测试的成立 .由于这些框架操纵了简单 Boolean 逻辑(以 assert 办法的情势)的坚固性 ,这使得无人为干涉而运行测试成为大概.事实上,自动化是测试框架的主要优 点之一 —— 我可以编写一个用于断言具体行为的相当复杂的测试,且一旦这些 行为有所改变,框架就会报告一个大家都能懂得的错误.
操纵成熟的测试框架会带来框架 可反复性的长处,这是显而易见的.但逻辑 的 可反复性却取决于您.比方,考虑成立用于考证 Web 利用程序的可反复测试 的情形,一些 JUnit 扩大框架(如 JWebUnit 和 HttpUnit)在帮忙自动化的 Web 测试方面非常好用.但是,使测试的 plumbing 可反复则是开辟人员的任务 ,而这在布置 Web 利用程序资源时很难举行.
实际的 JWebUnit 测试的构造历程相当简单,如清单 1 所示:
清单 1. 一个简单的 JWebUnit 测试
package test.come.acme.widget.Web;
import net.sourceforge.jwebunit.WebTester;
import junit.framework.TestCase;
public class WidgetCreationTest extends TestCase {
private WebTester tester;
protected void setUp() throws Exception {
this.tester = new WebTester();
this.tester.getTestContext().
setBaseUrl("http://localhost:8080/widget/");
}
public void testWidgetCreation() {
this.tester.beginAt("/CreateWidget.html");
this.tester.setFormElement("widget-id", "893-44");
this.tester.setFormElement("part-num", "rt45-3");
this.tester.submit();
this.tester.assertTextPresent("893-44");
this.tester.assertTextPresent("successfully created.");
}
}
这个测试与一个 Web 利用程序通信,并试图成立一个基于该交互的小部件. 该测试随后校验此部件能否被成功成立.读过本系列之前部份的读者们大概会注 意到该测试的一个奇妙的可反复性问题.您注意到了吗?假如这个测试用例持续 运行两次会怎样呢?
由这个小部件实例(即,widget-id)的考证方面可以判断出,可以安全地做 出这样的假定,即此利用程序中的数据库约束极大概会禁止成立一个已经存在的 额外的小部件.由于贫乏了一个在运行另一个测试前删除此测试用例的目标小部 件的历程,假如再持续运行两次,这个测试用例非常有大概会失利.
幸运的是,如前面文章中所探究的那样,有一个有助于数据库-依靠性 (database-dependent)测试用例可反复性的机制 —— 即 DbUnit.
以上是“追求代码质量 - 可反复的系统测试[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |