自己写一个JUnit3-day0
JUnit是一个著名的单元测试框架。老版本的3.*是基于反射原理,源码也很简单,可以先自己做一个JUnit3,然后再根据源码改进自己的JUnit。 需要的基础: 1.java基础 2.通过反射实例化,且调用实例的方法 3... day0下来了解一下JUnit3怎么使用。关键点有:1.必须继承TestCase,2.方法名以test为前缀,非test前缀需要在执行时指定方法名,3.方法必须为public,返回值为void 在IDEA里,添加junit3的依赖或导入jar以后,右键运行该类。 然鹅,这样的运行方式是错误的。虽然结果是成功了,但是并非是按照预料的使用了JUnit3.*,而是使用了IDEA内置的JUnit4,具体可以查看控制台第一行输出的内容的黑体部分
"C:\Program Files\Java\jdk1.8.0_141\bin\java.exe" -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2019.2\lib\idea_rt.jar=62797:C:\Program Files\JetBrains\IntelliJ IDEA 2019.2\bin" -Dfile.encoding=UTF-8 ...此处有省略... com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 -junit4 wangc.JUnit3Demo
使用IDE能够极大的方便开发过程,但是一些高度集成的功能导致我们不容易理解一些基础原理。所以,我们使用IDE写,然后手工编译运行。lib:jar包(如果需要在idea中运行,需要在Project Structure中配置Libraries。手工编译运行则不需要配置相关)src:源码目录 新建JUnit3Demo.java
public class JUnit3Demo extends TestCase { public void testAdd1(){ System.out.println("this is testAdd1"); } public void testAdd2(){ System.out.println("this is testAdd2"); } }
然后,打开命令提示符(或Shell终端),进入src目录,然后执行编译javac
D:\workspace_HelloWorld\HelloWorld_JUnit3>javac -encoding UTF-8 -classpath "lib/junit-3.8.2.jar" -d ./out src/com/wangc/day0/JUnit3Demo.java
然后运行java
D:\workspace_HelloWorld\HelloWorld_JUnit3>java -classpath "./out;lib/junit-3.8.2.jar" junit.textui.TestRunner com.wangc.day0.JUnit3Demo
(乌鸦注:关于javac和java的运行参数-encoding、-classpath、-d 此处按下不表,可自行百度)
好,成功使用JUnit3做了两个单元测试。可以看到,最后我们其实是运行的JUnit提供的主类 junit.textui.TestRunner,我们自己写的业务类是作为一个参数传递的。所以,必须要了解一下反射的基本操作。 来源:https://www.icode9.com/content-4-867151.html