这些注解都是JUnit4自定义的,熟练掌握这些注解的含义,对于编写恰当的测试类非常重要 。接下来我们创建壹个测试类 CalculatorTest.java,代码如下: package net.oschina.bairrfhoinn.test; import static org.junit.Assert.*; import org.junit.Test; import net.oschina.bairrfhoinn.main.Calculator; public class CalculatorTest { private static Calculator calculator = new Calculator(); @Test public void testAdd(){ calculator.add(7); calculator.add(8); assertEquals(15, calculator.getReuslt()); } } 首先,我们要在方法的前面使用@Test标注,以表明这是壹个测试方法 。
对于方法的声明也有如下要求:名字可以随便取,没有任何限制,但是返回值必须为void,而且不能有任何参数 。如果违反这些规定,会在运行时抛出壹个异常 。
至于方法内该写些什么,那就要看你需要测试些什么了 。比如上述代码中,我们想测试壹下add()方法的功能是否正确,就在测试方法中调用几次add函数,初始值为0,先加7,再加8,我们期待的结果应该是15 。
如果最终实际结果也是15,则说明add()方法是正确的,反之说明它是错的 。assertEquals(15, calculator.getResult());就是用来判断期待结果和实际结果是否相等,其中第壹个参数填写期待结果,第二个参数填写实际结果,也就是通过计算得到的结果 。
这样写好之后,JUnit 会自动进行测试并把测试结果反馈给用户 。如果想运行它,可以在 eclipse 的资源管理器中选择该类文件,然后点击右键,选择 Run As->JUnit Test 即可看到运行结果 。
使用@Test 的属性 Ignore 指定测试时跳过这个方法 如果在写程序前做了很好的规划,那么哪些方法是什么功能都应该实现并且确定下来 。因此,即使该方法尚未完成,他的具体功能也是确定的,这也就意味着你可以为他编写测试用例 。
但是,如果你已经把该方法的测试用例写完,但该方法尚未完成,那么测试的时候无疑是“失败” 。这种失败和真正的失败是有区别的,因此 JUnit 提供了壹种方法来区别他们,那就是在这种测试函数的前面加上 @Ignore 标注,这个标注的含义就是“某些方法尚未完成,暂不参与此次测试” 。
这样的话测试结果就会提示你有几个测试被忽略,而不是失败 。壹旦你完成了相应函数,只需要把@Ignore标注删去,就可以进行正常的测试 。
比如说上面的测试类 Calculator.java 中,假设我们的 Calculator 类的 multiply() 方法没有实现,我们可以在测试类 CalculatorTest 中先写如下测试代码: package net.oschina.bairrfhoinn.test; import static org.junit.Assert.*; import org.junit.Ignore; import org.junit.Test; import net.oschina.bairrfhoinn.main.Calculator; public class CalculatorTest { private static Calculator calculator = new Calculator();。//此处代码省略 @Ignore("method square() not implemented, please test this later 。
") @Test public void testSquare(){ calculator.square(3); assertEquals(9, calculator.getReuslt()); } } 我们再运行壹次测试,会看到如下结果,从图中可以很明显的看出,方法testSquare() 上的 @Ignore 注解已经生效了,运行时直接跳过了它,而方法testAdd()仍然正常的运行并通过了 。
4.单元测试用例该怎么写写单元测试用例?好像有些理想化 。
在实际工作中,能有个基本的详细设计文档就不错了,只要有了详细设计文档,就可以直接建立可执行的测试用例 。先写个文字的单元测试用例,费时费力,还要维护,项目不会给那么多时间吧?从我们的客户反馈来看,实际工作中,很多项目是没有规范的详细设计的,这时最容易范的错误就是:测试人员阅读代码来了解代码功能,以便设计用例,结果,测试几乎没有效果 。
- 51jobit技能怎么写
- jdk环境变量批处理怎么写
- 印刷合同怎么写
- 公司开会的感想怎么写
- 公布晋级的名单的告示怎么写
- 睾丸受伤怎么办 睾丸受伤处理方法
- 一篇新环境的作文怎么写一个题目
- 装文盲 漫画怎么写
- 树木变脏了作文300字怎么写
- 小学生关于收花生的作文怎么写