在Myeclipse下运行JUnit
?
?? JUnit测试框架是由Erich Gamma和Kent Beck编写的一个回归测试框架。junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何完成功能和完成什么样的功能。JUnit是一套框架,它继承TestCase类,可以用JUnit进行自动测试。
?
?? MyEclipse集成环境下的junit单元测试具有以下5点优势:
- 可使测试代码与产品分离;
- 针对某一个类的测试代码只通过较少的更改便可以应用于另一个类;
- 易于集成到测试人员的构建过程中,JUnit测试框架和Ant编译工具的结合可以实施增量开发;
- JUnit源代码是公开的,可进行二次开发;
- 可方便地对JUnit进行扩展。
?
1. 加入JUnit相关jar包。
选中项目,右键——>build path——>config bulid path——>Add Library——>JUnit——>Next——>JUnit 4
?
?
2. 新建测试用例,类名一般以方法名+Test命名,如LoginTest
New——>JUnit Test Case——>Class under test填写要测试的方法所在类的路径——>Next——>选择要测试的方法——>finish
?
另一种方法,在package Explore中找到要测试的类中的方法并选中,右键new,后面方法与前面相同,只是不需要写测试方法所在类的路径
?
可以有多个测试方法,必须以test+方法名命名,如testLogin
多个测试方法时,运行的时候,依次运行,若想只运行其中一个,可以在package Explore找到该类中的方法,右键run as——>Junit Test。
?
JUnit 4一般来说可以不用继承TestCase类,但如果使用Junit suite是则需要,因为suite里函数addTestSuite(param),参数需要继承TestCase类。
?
public class LoginTest extends TestCase{ /** * @throws java.lang.Exception * 静态方法,在测试类执的测试方法执行前被系统调用,只被调用一次 */ @BeforeClass public static void setUpBeforeClass() throws Exception { System.out.println("in setUpBeforeClass()"); } /** * @throws java.lang.Exception * 静态方法,在测试类的所有测试方法执行完毕后被系统调用,只被调用一次 */ @AfterClass public static void tearDownAfterClass() throws Exception { System.out.println("in tearDownAfterClass()"); } /** * @throws java.lang.Exception * 非静态方法,在每个测试方法执行前,被系统调用,有多少个测试方法,就被调用多少次 */ @Before public void setUp() throws Exception { System.out.println("int setUp()"); } /** * @throws java.lang.Exception * 非静态方法,在每个测试方法执行完毕后,被系统调用,有多少个测试方法,就被调用多少次 */ @After public void tearDown() throws Exception { System.out.println("int tearDown()"); } /** * Test method for {@link com.sun.struts2.action.LoginAction#login()}. * @throws Exception */ @Test(timeout=100)//ms public void testLogin2() throws Exception { System.out.println("int testLogin()"); //fail("Not yet implemented"); LoginAction login = new LoginAction(); login.setUserName("test"); login.setPassword("234"); String result = login.login(); assertTrue("Expected a success result!",ActionSupport.SUCCESS.endsWith(result)); //final String msg = "Hello,World!"; //assertTrue("Expected the default message!",msg.equals(login.getUserName())); }?
?
3. 新建Junite Suite
New——>JUnit Test Suite——>输入类名——>finish
当项目很复杂,测试用例很多的时候,采用Suite可以自动运行多个测试用例,比较方便。
?
public class AllTests { public static Test suite() { TestSuite suite = new TestSuite("Test for com.sun.struts2.junit"); //$JUnit-BEGIN$ //调用对象的方法进行自动测试,加入你想要测试的测试类 //注:该方法的参数需要是继承TestCase的类 suite.addTestSuite(LoginTest.class); suite.addTestSuite(SetAgeTest.class); //$JUnit-END$ //$JUnit-END$ return suite; }}?
?
?? Ant编译工具是一种基于Java的build工具,是Java平台下非常棒的批处理命令执行程序,能非常方便地自动完成编译、测试、打包、部署等一系列任务,极大提高了开发效率。从理论上说,Ant编译工具有些类似于(Unix)C语言中的make命令,但没有make命令的缺陷。与基于shell命令的扩展模式相比不同的是,Ant编译工具用Java的类来扩展。用户不必编写shell命令,配置文件是基于XML的,因此通过调用target树,就可执行各种任务。每个任务由一个实现了特定Task接口的对象来运行。MyEclipse已经将Ant编译工具集成,通过Ant编译工具可以将JUnit测试的执行结果生成测试报告。
?
1. 安装ant,配置ant home。?
一般来说myeclipse已经集成了ant插件,所以不需要安装和配置,默认存储位置E:\Program Files\MyEclipse 8.5\Common\plugins。如要安装的话,安装方法?
如需配置路径,方法:Window——>Preferences——>Ant——>Runtime——>Ant Home Entries——>Ant Home——>选择ant的安装路径——>Apply
?
2. 创建项目,并建立build.xml,放在src文件夹下,如何自动生成build.xml?
?
3. 右键项目——>Properties——>Builders——>New——>Ant Builder——>OK
?
填写builder名字,builderfile——>Browse WorkSpace——>选择项目下的build.xml
?
待续。。。。。。。。。。。。
?
参考:http://hi.baidu.com/zhfbaba/blog/item/376b9d94ef06d952d1135edc.html
http://www.iteye.com/problems/3551
http://mazhiyang88.blog.163.com/blog/static/297339320110104843857/
?