测试实践:Eclipse 之 JUnit(二)

来源:互联网 发布:淘宝买枪零件犯法吗 编辑:程序博客网 时间:2024/05/18 01:39
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

测试实践Eclipse JUnit(二)

(Using JUnit With Eclipse IDE)

 

 

(继续)

通过以下两步来建立我们简单的Test Case;

 

    1. 建立JUnit.framework.TestCase的实例.

    2. 定义一些 "test"开头的测试函数, 并且返回一空值.(比如 testWasTranscationSuccessful(),testShow()等等).

 

 

TestThatWeGetHelloWorldPrompt.java  同时遵循这些标准: 这些TestCase的子类含有一个testSay()的方法. 这个方法由assertEquals()方法调用, 用于检验say()的返回值(按照这里的做法返回应该是不一致,因为一开始建立的HelloWorld 我们让say()返回的值是null.

 

main()猪函数是用来运行test并且显示输出的结果. JUnitTestRunnery以(swing.u)图形和本文(text.ui|)的的方式来执行我们的test并反馈信息。我们就使用文本(text.ui),这个Eclipse肯定支持.  (译注:这里可能翻译的不怎么好,所谓文本和图形,是指你在建立TestCase的时候,有一个选项,Which method stubs would you like to create,选择text.ui|| swing.ui||awt.ui,一般是选择text.ui因为Eclipse肯定支持这个), 依照这些文本的信息,Eclipse同时会生成图形显示。(在Package Exploer的下面Tab条上会多个JUnit,点它就看到了:)。

 

 

所以,按照现在这样测试驱动的开发的做法, 一旦我们跑起了我们的test我们应该看到返回一些错误的信息。 Run-> Run as -> JUnit Test(注意啊, 这个TestThatWeGetHelloWorldPrompt.java应该在Package Explorer被点中,在左边那个window中),你点到的因该是JUnit window(就是下面的那个Tab条,注意不是Package Exploer),这样你就看到了JUnit window他会显示一个红色条,失败的Test如果你按了运行它没有自动转到这个窗口,你可以点做下Tab上的JUnit标签。

 

 

 

 

 

 

一按了运行太好了,果然错了。好,现在正式开始建立用于工作的HelloWorld代码,---New->Class,可能和原来的的重复,那就把原来的删掉。代码如下:

 

HelloWolrd.java

public class HelloWorld {

    public String say() {

        return("Hello World!");

    }

}

 

这是一个及为简单的,都用不着注释。现在再来测试一下看看结果。就用上面的方法,点Run-> Run As Jnit. 在左边的JUnit窗口中出现了一个绿条。 看图三。 绿色的条表示测试通过了。

 

 

 

 

现在,我们需要让再次让他失败,但换个原因。 这将帮助我们理解JUnit test怎样覆盖并且报出不同的错误。 编辑 assertEquals()方法,把它的返回值从"Hello World!"变成另外一个值 比如"Hello ME!". 这样,当你再运行这个JUnit test那个显示条又变成红的了, 并且在Failuer Trace里看到什么导致了错误。

 

 

 

总结。我想说一些自己的想法(这里还是原文不是翻译过来的)我过去并不认为测试代码是开发过程中很重要的一部分。 但在最近几年发展的很快,多亏了那些方法论(比如基于异常开发"exceptions-based development"),他们促进了测试以及测试工具的发展。

如果你对本文感兴趣, 您可以花点时间正式的学习一下测试理论,把它应用到你的工作中去。.

 

 

作者介绍 Alexander Prohorenko高级UNIX系统管理员,网络安全管理员.

         Olexiy Prohorenko  Java开发人员 他居住在 乌克兰的第.罗夫斯(从足球队里找到的中译:)

(全文终于翻译完)

 

 

 

学习测试一些资源:

JUint主页 JUnit.org/index.htm">http://www.JUnit.org/index.htm

支持Struts Framework JUnit 组件:http://strutstestcase.sourceforge.net/

关于XP和网站 http://www.chianxp.org

Martin FowlerRefactoring 中文《重构》侯杰译。

 

总之,我觉得这是一篇 step by step 非常简单的入门文章,很容易让人明白,所以就厚着脸皮翻译过来了。

在这里我向原文的作者表示道歉,还有我的英语老师,我给您老丢脸了。

 

如果有误人子弟的地方,请大家及时纠正,也希望测试高手带带我这个菜鸟。

E-Mail zhangli@telecomjs.com

                                                                                                 

                                                                                                                       2004-2-11

<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击