最近看一个项目的代码,看到该项目对于每一个类都会有一个测试程序。因为我需要用到项目中的某部分代码做测试,想着可不可以采用同样的办法,为该部分写一个测试程序。但是,后面发现不可以,因为JUnit测试包需要有类似eclipse或者maven等开发环境下才能使用(仅仅是我的理解),因为需要下载JUnit测试包。所以,最后的实现是重新写了一个含main()函数的类,修改pom.xml中的关于main()函数入口。
我的理解应该是,JUnit为测试写了一个普适的接口,比如main()函数接口等,客户在使用的时候只需要编写特定的部分即可。
多数Java的开发环境都已经集成了JUnit作为单元测试的工具,Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。
另外junit是在极限编程和重构(refactor)中被极力推荐使用的工具。什么是极限编程?要求在编写代码之前先写测试,这样可以强制你在写代码之前好好的思考代码(方法)的功能和逻辑,否则编写的代码很不稳定,那么你需要同时维护测试代码和实际代码,这个工作量就会大大增加。因此在极限编程中,基本过程是这样的:构思-> 编写测试代码-> 编写代码-> 测试,而且编写测试和编写代码都是增量式的,写一点测一点,在编写以后的代码中如果发现问题可以较快的追踪到问题的原因,减小回归错误的纠错难度。
注意点如下:
1、使用简单的 @Test 注解实现我们的测试方法的编写和执行
2、使用@Test 的 Ignore 属性指定测试时跳过某個方法
3、使用注解 @Before 和 @After 来完成前置工作和后置工作
4、使用@Test 的属性 timeout 来完成限时测试,以检测代码中的死循环
5、使用@Test 的属性expected来监控测试方法中可能会抛出的某些异常
6、指定 JUnit 运行测试用例时的 Runner
7、testNG 可能是用于大量数据测试
具体可以参见这些链接:
https://my.oschina.net/bairrfhoinn/blog/167636
http://mark-yang.github.io/blog/2015/05/17/junit/