• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

软件测试中JBuilder单元测试实例

发布: 2009-9-09 11:07 | 作者: 不详 | 来源: 领测软件测试网 | 查看: 29次 | 进入软件测试论坛讨论

领测软件测试网

3 使用断言(Assert)
        开发人员熟悉其他编程环境通常的断言概念。例如,在C和C++中,assert()宏是常常用来测试一个正确的结论到一个潜在问题的操作。在JUnit中,您可以直接从测试实例中调用任何Assert方法,因为TestCase 是Assert的子类。

[NextPage]
 
        不像C和C++语言中assertion 宏的发现,Assert类–被定义和应用为junit.framework.Assert,具有的功能如下所示。
Assert.assertEquals
Assert.assertNotNull
Assert.assertNull
Assert.assertSame
Assert.assertTrue
Assert.fail
        除fail成员函数外,上述所有其他符号重载的函数将执行一个测试,来决定是否产生错误信息。相反,直接调用fail将通过Assert.fail(String)或Assert.fail()通知Assert为fail。

        在Assert类中有许多方法,每个设计执行一个断言都有所不同。这些方法中的任何一个都触发测试失败。
为浏览junit.framework.Assert中的不同方法,在编辑器中打开一个测试实例,在结构面板上双击TestCase 父类,然后双击它的父类Assert。

4 使用setUp()和tearDown()
        我们能在测试实例中使用setUp和tearDown方法,以减少重复代码。在任何测试函数前后,setUp和tearDown方法都应被调用。测试类的代码如下:

public class TestMoney extends TestCase {
Money101 f12EUR;
Money101 f14EUR;

public TestMoney101(String s) {
super(s);
}protected void setUp() {
// set up the fixture
f12EUR = new Money101(12, "EUR");
f14EUR = new Money101(14, "EUR");
}

protected void tearDown() {
}public void testAddMoney101() {
Money101 expected = new Money101(26, "EUR");
Money101 result = f12EUR.addMoney101(f14EUR);
Assert.assertTrue(expected.equals(result));
}public void testEquals() {
Assert.assertTrue(!f12EUR.equals(null));
Assert.assertTrue(f12EUR.equals(f12EUR));
Assert.assertTrue(f12EUR.equals(new Money101(12, "EUR"));
Assert.assertTrue(!f12EUR.equals(f14EUR));
}

}

5 测试集
        测试实例可以被集成为测试集。顶层的测试集应该包含其他所有的测试实例和(或)测试集。

        测试实例和测试集都是TestCase 的扩展并执行Test 接口。测试实例和测试集惟一的区别是测试实例包含单独的测试方法,而测试集通常用来组织其他单元实例到一个逻辑的组中,并把它们作为组来运行。测试集可以调用任何测试实例或测试集。

        有两种方法执行测试集,分别为:静态和动态。在静态和动态测试中,您都必须提供一个静态方法建立测试集。

5.1 建立动态测试
        有两种方法建立动态测试实例。第一种方法不仅允许您动态地实例化Test,也可以允许您动态地为正在运行的测试实例加入单独的测试。相应的代码如下:

public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTest(new TestMoney101("testEquals"));
suite.addTest(new TestMoney101("testAddMoney"));
return suite;
}

        suite()函数返回一个Test的接口,此接口是被动态建立的。每个测试方法都可以被单独增加。
我们不仅可以单独增加每个测试到动态实例,而且可以使用符合字符串的构造函数,相应的代码如下:

public static Test suite() {
return new testSuite(TestMoney101.class);
}

5.2 建立静态测试

[NextPage]
 
        这是使用静态Test建立同样功能的代码。

public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTest(new TestMoney101("money equals") {
protected void runTest() { testEquals(); }
});
suite.addTest(new TestMoney101("money add") {
protected void runTest() { testAddMoney101(); }
});
return suite;
}

5.3 JBuilder界面
        在JBuilder中使用Test Runner的这些测试输出样式如下图所示。

JBuilder中提供了3种test runner 的类型。每个test runner 对应一个特定的用户界面。
JUnit Text UI
JUnit Swing UI
JUnit Awt UI

        您可以选择【Project】→【Properties】命令或【Run】→【Configurations】命令中Run面板,在其中选择Test Runner。每个Test Runner都由Borland JBuilder 集成到测试框架中。
如果测试失败,将以一个红色小球作为标记。在 JBuilder 中双击该测试方法,您可以直接看到其源代码。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

22/2<12

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网