转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持!
本文是Java反射学习总结系列的最后一篇了,这里贴出之前文章的链接,有兴趣的可以打开看看。
http://blog.csdn.net/a396901990/article/category/2302221
本文介绍了如何利用反射和注解去简单的模拟JUnit4单元测试框架,之所以选择JUnit4是因为4.0以后最大的改进就是使用了注解。需要注意的是这里并不是完全的模拟,只是简单实现了一下Runner类和JUnit注解相关的工作流程。所以本文的主要目的是介绍反射和注解的使用。废话不多说,直接进入正文。
首先来看一个Junit单元测试的小例子:
先定义一个简单的类,里面只有一个add计算加法的方法和一个divide计算除法的方法,divide方法需要判断除数不能为0否则抛出异常。
- public class calculate {
- public int add(int a, int b) {
- return a + b;
- }
- public int divide(int a, int b) throws Exception {
- if (0 == b) {
- throw new Exception("除数不能为0");
- }
- return a / b;
- }
- }
接着写一个简单的JUnit测试类,对他进行单元测试
- import static org.junit.Assert.*;
- import org.junit.After;
- import org.junit.Before;
- import org.junit.Test;
- public class calulateTest {
- private calculate cal;
- @Before //使用JUint提供的注解标注此方法在执行测试方法前执行
- public void before() throws Exception {
- cal = new calculate();
- System.out.println("------------------");
- System.out.println("before test");
- }
- @After //使用JUint提供的注解标注此方法在执行测试方法后执行
- public void after() throws Exception {
- System.out.println("after test");
- }
- @Test //使用JUint提供的注解标注此方法为需要测试的方法
- public void addTest() {
- System.out.println("do add test");
- int result = cal.add(10, 20);
- //判断result和预期的值是否相等,在此例中如果result等于30则测试通过
- assertEquals(30, result);
- }