Category Archives: 关于IT2.0

JUnit最佳实践[译][三]

原文:http://www.javaworld.com/jw-12-2000/jw-1221-junit.html 以下是实现该功能的代码:    private boolean isATestCaseOfTheCorrectType (final Class testCaseClass) { boolean isOfTheCorrectType = false; if (TestCase.class.isAssignableFrom(testCaseClass)) { try { Field testAllIgnoreThisField = testCaseClass.getDeclaredField(“TEST_ALL_TEST_TYPE”); final int EXPECTED_MODIFIERS = Modifier.STATIC | Modifier.PUBLIC | Modifier.FINAL; if (((testAllIgnoreThisField.getModifiers() & EXPECTED_MODIFIERS) != EXPECTED_MODIFIERS) || (testAllIgnoreThisField.getType() … Continue reading

Posted in 关于IT2.0 | Tagged , , | 1 Comment

JUnit最佳实践[译][二]

原文:http://www.javaworld.com/jw-12-2000/jw-1221-junit.html 考虑一下地区因素 考虑一下,如果在测试中用到日期。创建日期的方法可能是这样的: Date date = DateFormat.getInstance ().parse (“dd/mm/yyyy”); 很遗憾,那样的代码可能在另外一台在不同地区的机器上就不能正常运作。因此,这样写可能会更好: Calendar cal = Calendar.getInstance (); Cal.set (yyyy, mm-1, dd); Date date = Calendar.getTime (); 第二种方法在运行换将地区不同的情况下更有兼容性。 使用JUnit的assert和fail方法,以及异常处理,可以让你的测试代码看上去更干净 许多JUnit的初学者喜欢用看上去可能更精巧的try和catch来捕捉异常,然后在catch中标记测试失败了。以下是一个例子: public void exampleTest () { try { // do some test } catch … Continue reading

Posted in 关于IT2.0 | Tagged , , | Leave a comment

JUnit最佳实践[译][一]

原文:http://www.javaworld.com/jw-12-2000/jw-1221-junit.html JUnit是一种典型的工具包:如果遵循它最初的设计规范加以使用,JUnit可以帮助开发人员建立起一组相当健壮的测试;反之,它可能只会给你的项目带来一团乱麻。本文将列出一些有用的技巧,它们将帮助你避免让那团乱麻入侵你的项目。这些技巧有时候甚至会自相矛盾,但这是不可避免的。以我的经验来看,软件开发几乎没有什么又快又好的规则,而那些自称是法则的东西大多是会有些误导的吧。 本文中我们会实现两种对开发人员有用的工具类: 从文件系统中取得类的集合,并自动生成测试套件 一个可以更好地支持多线程测试的测试类 在做单元测试的时候,许多开发团队总想自己去建立一套测试框架来完成单元测试的任务。而开源的JUnit提供了一套很好的单元测试框架,从而扼杀了许多这种建立一次性测试框架的想法。如果把JUnit作为整个开发项目的一部分去完成,它将发挥出自己最大的能量,因为开发人员可以使用JUnit更加简单地撰写并执行测试用例。那么,我们该如何使用JUnit呢? 不要使用构造器来初始化你的测试用例 在构造器里初始化你的测试用例可能并不是一个好主意。 考虑一下: public class SomeTest extends TestCase public SomeTest (String testName) { super (testName); // Perform test set-up } } 想象一下,当程序在执行初始化的时候,初始化部分的代码抛出了一个IllegalSateException的异常。而当JUnit抓住这个异常以后,它会抛出一个AssertionFailedError,接着它会告诉你无法建立此测试类的实例。以下是一个此类异常消息的例子: junit.framework.AssertionFailedError: Cannot instantiate test case: test1 at junit.framework.Assert.fail(Assert.java:143) at junit.framework.TestSuite.runTest(TestSuite.java:178) at junit.framework.TestCase.runBare(TestCase.java:129) … Continue reading

Posted in 关于IT2.0 | Tagged , , | Leave a comment

J&A on Google Code

JC和Apollo马上就都要进入各自工作岗位,朝九晚六。说好听点,我们要将接下来几十年里的大部分时间都献给我们无论是热爱或者不热爱的事业。今天上午我看了篇关于时间管理的文章,我以前从来没有看过这种文章,理由是我相信自己是个不自觉的人,但现在我想要努力做个自觉的人。J&A成立于2007年的10月26日,在这些时间里,我们一共发布了35块,我一共发送了1525封邮件,每星期花在邮件上的时间相当可观。 进入公司实习以后,我用上了SVN,并在随后看上了Google Code的Project Hosting。Google Code Project Hosting提供了一个SVN服务器和一个类似JIRA的缺陷跟踪及项目管理软件。它能够让促进程序员间更好地协作来进行开源软件的开发。你可能根本不关心Google Code能为程序员带来什么,实际上J&A模板分享并不能最大限度地享受Google Code所能带来的便利,那就让我们看看它会给你们带来什么改变: 1. 不一样的分享方式。我们将不再要求您留言索取,从现在起,你可以到此处直接点击下载。 2. 参与讨论,完善模板。您可以到此处参与讨论,或者报告您在使用我们的模板是所遇到的问题。 3. 订阅更新。您可以在此处订阅更新,您不再需要守候J&A每一期新模板的集体发布,而是时时掌握J&A新模板的开发进度。 同时,这样的改变意味着: 1.《J&A共享模版发送条例及使用说明》彻底失效。您不用再担心日志不满15篇、设置访问密码、禁止重复留言等等规定。 2.Google Project将完全承担J&A的共享任务,您留在我们Blog上的相关信息将不再被处理和回复。任何讨论和建议请移步至此处或给我们发送邮件。 我们仍在继续。

Posted in 关于IT2.0 | Tagged , , , | 18 Comments

J&A模板分享第七期

我的故事重新开始时,一切如前所述。 ——王小波《万寿寺》 王小波的《万寿寺》写的很有趣,因为王二觉得自己写的故事总是在重新开始,他在书桌上找到了许多各种各样的开始,但是如你所知,如果真的只有开始,这个故事是没法继续下去的。所以虽然王二总是会主动或被动地忘记过去,从新开始他的故事,但是他还是会慢慢找回过去的记忆。所以他的故事是循着曲折的路线往前走的,我的也是。我不是说我会经常找辆车来让自己失忆,我是说我会设法寻找过去的足迹。按照古人的说法那叫“以史为镜,可以知兴替;以人为镜,可以明得失。” 90年左右的光景,我们家刚搬到闸北,向亲戚们借了4000元才交上了房款,父母在接着的两年时间省吃俭用把债还清。那时我还小,我还记得等我稍微长大了点就会抱怨母亲说为什么自己只能用质量很差的圆珠笔。后来再大点了我就会跟着母亲埋怨父亲说为什么老丢自行车,再后来我才知道那时候父亲是骑着自行车来往浦东浦西上班,一趟来回要花上五六个小时,但我还觉得现在上下班坐地铁挤公交花三四个小时简直要命。我觉得我已经开始想念每星期做北安跨线回家的日子,尽管那一个来回也要花三四个小时。我还觉得今年的元宵很热闹,我都快忘记元宵节上也能放烟火,而且都把央视小楼给点着了。 Apollo-11是在去年的九月十三日完成的,那时候我刚开始实习一个多月,刚进项目组,都很新鲜;前天夜里我还在万恶之源的IE6下改Apollo-12,实习周记都写完了,实习还得干,我依然劲头十足。Apollo-12是我第一次使用PNG的图片资源,而且用得很多。使用滤镜后没办法是用repeat功能,我就用sizeingMethod=scale来做repeat,我还听说IE6下的height就是min-height,根本不把overflow:hidden当回事,我只好以牙还牙。在IE6下如果有负的外补丁,一定要用position:relative才能让超出部分的背景图片得以展现。但是如果恰巧这层又用了PNG做背景资源,那么内层的position:relative就无法使链接们死而复生了。这种事情就发生在Apollo-12的侧栏上,可以看到IE6下的侧栏比IE7或是FF下少掉许多东西。这是逼不得已也是能力有限,不过早知当初我就好好规划图片资源,少用PNG,不用-margin就行了。 我得夸夸JC,她的模板真是精雕细琢,和她做组合我脸上有光啊。 模板名称:class JC-16, 完成时间:2009年01月29日,模板系统:新模板系统,演示地址:点击此处 模板名称:class JC-17, 完成时间:2009年01月31日,模板系统:新模板系统,演示地址:点击此处 模板名称:class JC-18, 完成时间:2009年02月06日,模板系统:新模板系统,演示地址:点击此处 模板名称:class JC-19, 完成时间:2009年02月10日,模板系统:新模板系统,演示地址:点击此处 模板名称:Apollo’s Skin 11a, 完成时间:2008年09月13日,模板系统:新模板系统,演示地址:点击此处 模板名称:Apollo’s Skin 11b, 完成时间:2008年09月13日,模板系统:新模板系统,演示地址:点击此处 模板名称:Apollo’s Skin 11c, 完成时间:2008年09月13日,模板系统:新模板系统,演示地址:点击此处 模板名称:Apollo’s Skin 12, 完成时间:2009年09月29日,模板系统:新模板系统,演示地址:点击此处 模板名称:Apollo’s Skin 13, 完成时间:2009年01月29日,模板系统:新模板系统,演示地址:点击此处 模板名称:Apollo’s Skin … Continue reading

Posted in 关于IT2.0 | Tagged , , , , | 60 Comments