学习笔记之JUnit学习总结 [ 光影人像 东海陈光剑 的博客 ]

JUnit中的assert方法全部放在Assert类中,现在总结一下经常用到的junit类中assert方法。

1.assertTrue/False([String message],boolean condition) 判断一个条件是true还是false。

2.fail([String message,]); 失败,可以有消息,也可以没有消息。

3.assertEquals([String message],Object expected,Object actual); 判断是否相等,可以指定输出错误信息。

4.assertNotNull/Null([String message],Object obj); 判读一个对象是否非空(非空)。

5.assertSame/NotSame([String message],Object expected,Object actual); 判断两个对象是否指向同一个对象。看内存地址。

JUnit4是较历史版本有了很大的改进,我以前自己用的是JUnit3。JUnit4的主要方便是利用Java5的Annotation特性简化测试用例的编写。

记得以前在JUnit 3中我是这样写一个单元测试的:

public class AddOperation {

public int add(int x,int y){

return x+y;

}

}

要测试add这个方法,写单元测试得这么写,一定要注意的是以下两点

1.单元测试类必须继承自TestCase。

2.要测试的方法必须以test开头。

public class AddOperationTest extends TestCase{

public void testAdd() {

System.out.println("add");

int x = 0;

int y = 0;

AddOperation instance = new AddOperation();

int expResult = 0;

int result = instance.add(x, y);

assertEquals(expResult, result);

}

}

如果上面那个单元测试在JUnit 4中写就不会这么复杂。代码如下:

public class AddOperationTest extends TestCase{

@Test

public void add() {

System.out.println("add");

int x = 0;

int y = 0;

AddOperation instance = new AddOperation();

int expResult = 0;

int result = instance.add(x, y);

assertEquals(expResult, result);

}

}

采用Annotation的JUnit已经不会要求必须继承自TestCase了,而且测试方法也不必以test开头了,只要以@Test元数据来描述即可。

另外还有其他的几个Annotation:

@Before:

使用了该元数据的方法在每个测试方法执行之前都要执行一次。

@After:

使用了该元数据的方法在每个测试方法执行之后要执行一次。

注意:@Before和@After标示的方法只能各有一个。这个相当于取代了JUnit以前版本中的setUp和tearDown方法。

@Test(expected=*.class)

在JUnit4.0之前,对错误的测试,我们只能通过fail来产生一个错误,并在try块里面assertTrue(true)来测试。现在,通过@Test元数据中的expected属性。expected属性的值是一个异常的类型

@Test(timeout=xxx):

该元数据传入了一个时间(毫秒)给测试方法,

如果测试方法在制定的时间之内没有运行完,则测试也失败。

@ignore:

该元数据标记的测试方法在测试中会被忽略。当测试的方法还没有实现,或者测试的方法已经过时,或者在某种条件下才能测试该方法(比如需要一个数据库联接,而在本地测试的时候,数据库并没有连接),那么使用该标签来标示这个方法。同时,你可以为该标签传递一个String的参数,来表明为什么会忽略这个测试方法。比如:@lgnore(“该方法还没有实现”),在执行的时候,仅会报告该方法没有实现,而不会运行测试方法.

以上是我按照学习计划目标在本阶段的学习内容,如有错误请指正。

据说,男人看美图可以延年益寿,女人看美图可以美容养颜........
那么, 去哪儿看美图呢? 亲爱的,别急!别急!! 在这里---

欢迎关注! 光影人像 公众号!

光影人像---和美不期而遇.
( 摄影 艺术 人像 美图 )
Copyright 2015 光影科技公司版权所有

回复 1 : 首页 
回复 2 : 影廊
回复 3 : 社区
回复 4 : 下载App
回复 5 : 精选文章列表

lightshadow 光影人像 Abstract 抽象艺术 Macro 微距 Animals 动物 Nature 自然 Black and White 黑白 People 人像 Celebrities 节日 Performing Arts 行为艺术 City 城市 Architecture 建筑 Sport 运动 Commercial 商业摄影 Life 生活 Concert Street Family 家庭 Transportation Fashion 时尚 Travel 旅行 Film 电影 Underwater 水下 Fine Art Urban 乡间 Exploration Food 美食 Wedding 婚纱 Journalism Uncategorized 杂类 Landscapes 风景

时间: 2024-10-23 17:00:13

学习笔记之JUnit学习总结 [ 光影人像 东海陈光剑 的博客 ]的相关文章

学习笔记之Java Annotation学习总结 [ 光影人像 东海陈光剑 的博客 ]

?? 按照自己定的学习计划,今天是该写点什么了. ? 在上篇文章里提到的是JUnit的学习,其中就涉及到了一些内置的annotation,如@Test.@Ignore等.现在我就结合个人的理解谈下如何自定义自己的annotation. ? annotation能被用来为某个程序元素(类.方法.成员变量等)关联任何的信息,但annotaion不能影响程序代码的执行,无论增加.删除annotation,代码都始终如一的执行.另外,尽管一些annotation通过java的反射api方法在运行时被访问

牛径哲学 [ 光影人像 东海陈光剑 的博客 ]

??????? 牛径即牛走出来的路,我记得有一幅图是这样描绘的,几只牛被围在一堆有半人高的草从中,这些牛把中间的草吃出了一块空地,但吃完草,牛就开始找水喝,在离他们不远的地方就有一条小河(直线距离只有几米远),但牛看不到这条河,于是,有一天,一只牛不小心走出了一条弯弯曲曲的路(这条路的距离,远远大于直线的距离),并且成功到达了小河,喝到了水,于是,这只牛把这个消息告诉了被围住的其它牛,其它牛也顺着这条弯弯曲曲的小路找到了水喝,后来所有的牛都是顺着这条弯弯曲曲的小路达到河边喝水,从来没有其他牛去探

[ 光影人像 东海陈光剑 的博客 ]

关于"Deming第三原则:不要依赖于海量的检查"的思考 ????? 传统的想法认为检查可以排除糟糕的质量.当难于确定在过程中一个缺陷在哪边产生的时候,一个好的方法是关注于我们做的如何,而不应针对最终的产品.质量应当是内在的,而不是依赖于无数的检查获得的. ????? 为了使用该原则,一个质量保证组织可以: 1.在整个开发生命周期中,提高并使用技术评审.走读和检视来获取质量. 2.在整个组织中灌输质量意识,并把它作为一个切实的,可度量的工作产品 3.需要信息技术质量的统计证据 ????

临时需求如何安排发布? [ 光影人像 东海陈光剑 的博客 ]

?淘宝的发布工作是有严格的发布计划的,一旦非计划的发布需求出现时,需要评估才能决定何时能够发布. 这周在处理一个临时需求的发布计划时,有以下的感想: 在临时需求提出后,由PDM进行协调,这时发现和一个项目发布有冲突,经过和项目经理确认可以一起发布.但当项目发布前做计划时才发现,可能一起发会存在风险,比如任何一个进度延迟,另一个就不能发.一个上线有问题,如果严重,就会影响到另一个的质量.临时改变计划,并通知需求方. 通知需求方后,需求方坚持按原计划日期上线.经过了多轮沟通,采取了临时的计划. 这次

如何促进买家、卖家的交易提升 [ 光影人像 东海陈光剑 的博客 ]

1.如何让买家更方便的买到满意的宝贝? ????????现在网站的信息量越来越大,可以说是"海量",这当然是好事,但有时候却会给买家带去"被淹没在信息的海洋中"般的困惑.当然,为了买家能找到满意的宝贝,我们也提供了搜索引擎的功能,不过,我的感觉是这功能有时候并不能满足大家的要求. 淘宝网对买卖双方的需求有两个链接入口:"我要买"."我要卖".但对于"我要买"的功能,目前仍只是简单的链接到需要搜索的信息海洋中

Project web Access 2007工时更新 [ 光影人像 东海陈光剑 的博客 ]

2007-11-15添加: l? 设置任务跟踪方法 管理员可以在服务器端设置任务跟踪方法:见下图: 完成设置后,此时去打开我的任务时,跟踪方法并没有被改进,仍然是修改设置之前的跟踪方法,这时,需要在project客户端打开该项目,并做一定的操作,比如:更新任务的工时.调整计划等,总时,需要有所改动,因为只有这样,才可以重新发布计划,只有重新发布计划之后,新的跟踪方法才会生效. ?l? 项目成员如何在WEB端更新任务的完成情况? n? 跟踪方法为"工时完成百分比"的任务更新方法: 项目成

如何更好地服务用户? [ 光影人像 东海陈光剑 的博客 ]

说起用户,可能我们部门的用户不会像客服部门的用户一样,我们的用户更多的还是内部的用户. 在我平时的工作中,经常会和其他部门的人配合.前两周,yahoo的QA部门的人和我说,他们想要一批测试账户,来登录我们的测试环境,这样方便他们的测试.当时我和他解释说,我们的测试账户管理是测试小组在管理,并告知他负责人.另外,我马上和测试负责人进行了沟通,可行.然后告诉yahoo的同事,他可以直接找该负责人,我已经跟测试负责人打过招呼了.事后,我觉得他们肯定进行了沟通,也好久没收到yahoo同事反馈这个问题.

谢谢承志~~~ [ 光影人像 东海陈光剑 的博客 ]

谢谢承志帮我们搭建了这个窝,实在是太感谢了! 感谢,承志 据说,男人看美图可以延年益寿,女人看美图可以美容养颜........那么, 去哪儿看美图呢? 亲爱的,别急!别急!! 在这里--- 欢迎关注! 光影人像 公众号! 光影人像---和美不期而遇.( 摄影 艺术 人像 美图 )Copyright 2015 光影科技公司版权所有 回复 1 : 首页 回复 2 : 影廊回复 3 : 社区回复 4 : 下载App回复 5 : 精选文章列表 lightshadow 光影人像 Abstract 抽象艺术

Beta测试 [ 光影人像 东海陈光剑 的博客 ]

?? 这次与美国的Yahoo.Google.Ebay等公司的资深工程师及管理者交流后,发现他们对产品的上线管理是非常重视与慎重的.基本上每个新产品或者大的改动都会经过严谨的Beta测试.Beta版本本质上是一个产品.Beta测试的操作模式多种多样,完全视产品的性质而定.在前期的规划及设计就会做好完整的Beta生命周期管理策略.Beta=Product. ??? Yahoo, Google, Ebay在产品上线之前均会选取5%-10%的用户做Beta测试,他们的Beta测试环境与生产环境并存,没有