<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>petrelfly2008</title>
    <description>自信＋努力＋勤奋</description>
    <link>http://petrelfly2008.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
          <item>
        <title>junit使用小结</title>
        <author>yanaicheng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://petrelfly2008.javaeye.com">yanaicheng</a>&nbsp;
                    链接：<a href="http://petrelfly2008.javaeye.com/blog/186806" style="color:red;">http://petrelfly2008.javaeye.com/blog/186806</a>&nbsp;
          发表时间: 2008年04月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          junit使用小结 <br />在使用XP进行开发的过程，unit test是必不可少的环节。作为unit test，junit是首选的工具。本文从使用目的、如何使用、以及使用中需要考虑的问题，简略描述了junit的基本用法。 使用目的 junit是java中书写unit test的framework，目前一些流行的unit test工具大都都是在junit上扩展而来的。目前它的版本是junit3.8.1，可以从www.junit.org上下载。 用法 1. 基本使用步骤，Junit的使用非常简单，它的基本使用步骤： - 创建，从junit.framework.TestCase派生unit test需要的test case - 书写测试方法，提供类似于如下函数签名的测试方法： public void testXXXXX(); - 编译，书写完test case后，编译所写的test case类 - 运行，启动junit test runner，来运行这个test case。 Junit提供了2个基本的test runner：字符界面和图形界面。启动命令分别如下： a 图形界面： java junit.swingui.TestRunner XXXXX b 字符界面： java junit.textui.TestRunner XXXXX 2. 使用例子： import junit.frmework.TestCase; public class TestSample extends TestCaset{ public void testMethod1(){ assertTrue( true); } } 3. setUp与tearDown，这两个函数是junit framework中提供初始化和反初始化每个测试方法的。setUp在每个测试方法调用前被调用，负责初始化测试方法所需要的测试环境；tearDown在每个测试方法被调用之后被调用，负责撤销测试环境。它们与测试方法的关系可以描述如下： 测试开始 -> setUp -> testXXXX -> tearDown ->测试结束 4. 使用例子： import junit.frmework.TestCase; public class TestSample extends TestCaset{ protected void setUp(){ //初始化…… } public void testMethod1(){ assertTrue( true); } potected void tearDown(){ //撤销初始化…… } } 5. 区分fail、exception。 - fail，期望出现的错误。产生原因：assert函数出错（如assertFalse(true)）；fail函数产生（如fail(……)）。 - exception，不期望出现的错误，属于unit test程序运行时抛出的异常。它和普通代码运行过程中抛出的runtime异常属于一种类型。 对于assert、fail等函数请参见junit的javadoc。 6. 使用例子： import junit.frmework.TestCase; public class TestSample extends TestCaset{ protected void setUp(){ //初始化…… } public void testMethod1(){ …… try{ boolean b= …… assertTrue( b); throw new Exception( “This is a test.”); fail( “Unable point.”); //不可能到达 }catch(Exception e){ fail( “Yes, I catch u”); //应该到达点 } …… } potected void tearDown(){ //撤销初始化…… } } 7. 组装TestSuite，运行更多的test。在junit中，Test、TestCase和TestSuite三者组成了composiste pattern。通过组装自己的TestSuite，可以完成对添加到这个TestSuite中的所有的TestCase的调用。而且这些定义的TestSuite还可以组装成更大的TestSuite，这样同时也方便了对于不断增加的TestCase的管理和维护。 它的另一个好处就是，可以从这个TestCase树的任意一个节点（TestSuite或TestCase）开始调用，来完成这个节点以下的所有TestCase的调用。提高了unit test的灵活性。 8. 使用例子： import junit.framework.Test; import junit.framework.TestSuite; public class TestAll{ public class TestAll{ //定义一个suite，对于junit的作用可以视为类似于java应用程序的main。 public static Test suite(){ TestSuite suite = new TestSuite("Running all tests."); suite.addTestSuite( TestCase1.class); suite.addTestSuite( TestCase2.class); return suite; } } 运行同运行单独的一个TestCase是一样的，参见step 1 “运行”。 9. 使用Ant junit task。我们除了使用java来直接运行junit之外，我们还可以使用junit提供的junit task与ant结合来运行。涉及的几个主要的ant task如下： - ，定义一个junit task - ，位于中，运行多个TestCase - ，位于中，运行单个TestCase - ，位于中，定义一个测试结果输出格式 - ，定义一个junitreport task - ，位于中，输出一个junit report 具体的语法请参见相关文档。 10. 使用例子： 检查表 junit的使用并不很难，然而要书写一个好的TestCase却并非易事。一个不好的TestCase往往是既浪费了时间，也起不了实际的作用。相反，一个好的TestCase，不仅可以很好的指出代码中存在的问题，而且也可以作为代码更准确的文档，同时还在持续集成的过程中起非常重要的作用。在此给出书写TestCase时需要注意的几点： - 测试的独立性：一次只测试一个对象，方便定位出错的位置。这有2层意思：一个TestCase，只测试一个对象；一个TestMethod，只测试这个对象中的一个方法。 - 给测试方法一个合适的名字。 - 在assert函数中给出失败的原因，如：assertTrue( “… should be true”, ……)，方便查错。在这个例子中，如果无法通过assertTrue，那么给出的消息将被显示。在junit中每个assert函数都有第一个参数是出错时显示消息的函数原型。 - 测试所有可能引起失败的地方，如：一个类中频繁改动的函数。对于那些仅仅只含有getter/setter的类，如果是由IDE（如Eclipse）产生的，则可不测；如果是人工写，那么最好测试一下。 - 在setUp和tearDown中的代码不应该是与测试方法相关的，而应该是全局相关的。如针对与测试方法A和B，在setUp和tearDown中的代码应该是A和B都需要的代码。 - 测试代码的组织：相同的包，不同的目录。这样，测试代码可以访问被测试类的protected变量/方法，方便测试代码的编写。放在不同的目录，则方便了测试代码的管理以及代码的打包和发布。一个例子如下： src &lt;=源代码根目录 |---com |---mod1 |---class1 junit &lt;=测试代码根目录 |---com |---mod1 |---class1 http://www.dvbbs.net/tech/program/2006042861394.asp
          <br/><br/>
          <span style="color:red;">
            <a href="http://petrelfly2008.javaeye.com/blog/186806#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 25 Apr 2008 15:38:12 +0800</pubDate>
        <link>http://petrelfly2008.javaeye.com/blog/186806</link>
        <guid>http://petrelfly2008.javaeye.com/blog/186806</guid>
      </item>
          <item>
        <title>程序员分成几种不同的境界</title>
        <author>yanaicheng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://petrelfly2008.javaeye.com">yanaicheng</a>&nbsp;
                    链接：<a href="http://petrelfly2008.javaeye.com/blog/183053" style="color:red;">http://petrelfly2008.javaeye.com/blog/183053</a>&nbsp;
          发表时间: 2008年04月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          《程序员》杂志上有一篇文章写的非常好，这里节选一段。文章一标题是《程序员分成几种不同的境界》。对比了一下，我觉得自己看来只能属于第五流的程序员。把这篇文章引在这儿，是准备时时刻刻激励自己，往更高层次努力，或者追求更高人生境界。<br /><br />五流程序员比技术和工具<br />　　五流程序员关心的是用什么工具可以产生什么结果，追逐他听过最新、最好、最时髦的技术，沉浸于一些小练习，却很少走出象牙塔和客户或市场进行真正的沟通，甚至完成大型的真实案例。<br /><br />四流程序员比整合和管理<br />　　四流程序员比前者更关心在什么地方使用什么，他的心里放着集成各种技术的地图，而不偏向单一工具和技术，他在乎运作一场战役的风险，还有资金成本的考量，包含开发时间、维护难易、用户培训或是市场推广……<br /><br />三流程序员比创意和设计<br />　　三流程序员不仅要求把事情“做完”，同时要求自己把事情“做好”，他的作品里充满着感动和生命，即使好几年以后重新来过，你依然会觉得那些创意和设计，突破了时空限制，只能模仿无法取代。<br /><br />二流程序员比沟通和性格<br />　　二流程序员跳脱工具，比人际沟通，他知道怎样和老板沟通，怎样和同事沟通，也知道怎样和客户沟通。他有一个成熟并且稳定的性格，让任何人跟他在一起做事都有安全感，并且感到快乐。<br /><br />一流程序员比态度和方法<br />　　一流程序员比的是学习的态度和方法，包括号对自我控制的能力，也就是纪律，我们不看他做出来什么事，而是看他准备怎么去做，包含解决问题需要的时间，还是学习新事物的方法。<br />　　只要他掌握了适合他自己的学习态度和方法，那么他可以从任何时刻开始新的学习，并且展现最好的结果，至于现在会不会，懂不懂都不重要，因为只要他想要，他就随时可以要，也能要得到。<br /><br />超级程序员比思想和素质<br />　　程序只是语言的表述，而语言则是思想的淬炼。<br />　　超级程序员不仅改变我们的行为，也企图改变我们的思想。你不需要从超级程序员的代码判断他的素质，而是从他写的字、他说的话去感受他，因为没有那个思想到不了那个境界。
          <br/><br/>
          <span style="color:red;">
            <a href="http://petrelfly2008.javaeye.com/blog/183053#comments" style="color:red;">已有 <strong>2</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 15 Apr 2008 22:18:44 +0800</pubDate>
        <link>http://petrelfly2008.javaeye.com/blog/183053</link>
        <guid>http://petrelfly2008.javaeye.com/blog/183053</guid>
      </item>
          <item>
        <title>窗口关闭事件的js</title>
        <author>yanaicheng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://petrelfly2008.javaeye.com">yanaicheng</a>&nbsp;
                    链接：<a href="http://petrelfly2008.javaeye.com/blog/177068" style="color:red;">http://petrelfly2008.javaeye.com/blog/177068</a>&nbsp;
          发表时间: 2008年03月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          window.onbeforeunload
          <br/><br/>
          <span style="color:red;">
            <a href="http://petrelfly2008.javaeye.com/blog/177068#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 27 Mar 2008 23:17:09 +0800</pubDate>
        <link>http://petrelfly2008.javaeye.com/blog/177068</link>
        <guid>http://petrelfly2008.javaeye.com/blog/177068</guid>
      </item>
          <item>
        <title>答复: 主管低估了我的能力？应该不是</title>
        <author>yanaicheng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://petrelfly2008.javaeye.com">yanaicheng</a>&nbsp;
                    链接：<a href="http://petrelfly2008.javaeye.com/blog/177066" style="color:red;">http://petrelfly2008.javaeye.com/blog/177066</a>&nbsp;
          发表时间: 2008年03月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我也有同感哦，只要自己坚持下去，就好了，的确表现是很重要的，要让领导看到自己能力
          <br/><br/>
          <span style="color:red;">
            <a href="http://petrelfly2008.javaeye.com/blog/177066#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 27 Mar 2008 23:07:53 +0800</pubDate>
        <link>http://petrelfly2008.javaeye.com/blog/177066</link>
        <guid>http://petrelfly2008.javaeye.com/blog/177066</guid>
      </item>
          <item>
        <title>hibernate的对应POJO的。xml问题</title>
        <author>yanaicheng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://petrelfly2008.javaeye.com">yanaicheng</a>&nbsp;
                    链接：<a href="http://petrelfly2008.javaeye.com/blog/177064" style="color:red;">http://petrelfly2008.javaeye.com/blog/177064</a>&nbsp;
          发表时间: 2008年03月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在项目中使用了hibernate2.jar,但在POJO的xml中使用了3.0dtd，在打包和部署都没有问题哦，不知道为什么？
          <br/><br/>
          <span style="color:red;">
            <a href="http://petrelfly2008.javaeye.com/blog/177064#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 27 Mar 2008 23:03:41 +0800</pubDate>
        <link>http://petrelfly2008.javaeye.com/blog/177064</link>
        <guid>http://petrelfly2008.javaeye.com/blog/177064</guid>
      </item>
      </channel>
</rss>