本人刚毕业的javaer一枚,为了锻炼自己阅读源码的能力,目前在业余时间学习junit的源码。虽然自己使用过junit进行单元测试,对其也是挺熟悉的,但是昨天看了几个小时,一点感觉都没有,网上的一般都是对junit的使用,对其深入分析的比较少。现在我阅读的方法是:
首先试用junit,了解其测试流程
其次了解其大致框架
最后对各个模块进行分析
参考资料:
http://www.blogjava.net/killme2008/archive/2012/05/22/378885.html
http://www.ibm.com/developerworks/cn/java/j-lo-junit-src/
https://github.com/junit-team/junit/wiki
希望路过的大神不吝赐教,知道我如何通过源码分析junit的整体框架情况或者一些开源源码的阅读经验。谢谢!!
------解决思路----------------------
所有代码都通读了,会花费很多时间
感觉有目的性的阅读可能效率会高一些
比如,试着模仿一下JUnit最简单的功能,自己做一个MinUnit,也能动态的判断各个方法的执行结果并产生报告
在这个过程当中,不断的去参考原来的JUnit的实现方法,最后不仅弄明白了很多深层次的技术问题,还得到一个以后可以自己随意定制的“副产物”
另外,可以考虑用Doxygen、javadoc等工具生成各种自己想要的文档
再找些能从代码反着生成类图、时序图等逆工程的UML工具
有啥成果,贴出来和大家分享吧
------解决思路----------------------
那就看,
先看3.8吧,3比较简单。
3
入口 TestRunner.main(a);
4
入口JUnitCore.main(a);
代码
3
package junit3_8;
import junit.framework.TestCase;
public class MyTest extends TestCase {
public void testSimpleAdd() {
assertTrue(true);
assertTrue(false);
}
}
package junit3_8;
import junit.textui.TestRunner;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
String[] a = {"junit3_8.MyTest"};
TestRunner.main(a);
}
}
4
package junit4_8;
import static org.junit.Assert.*;
import org.junit.Test;
public class Mytest {
@Test public void simpleAdd() {
assertTrue(true);
assertTrue(false);
}
}
package junit4_8;
import org.junit.runner.JUnitCore;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
String[] a = {"junit4_8.Mytest"};
JUnitCore.main(a);
}
}