转载:http://www.cnblogs.com/changzhz/p/5158068.html
单元测试是开发中必不可少的一部分,是产品代码的重要保证。
Junit和testNG是当前最流行的测试框架,Junit是使用最广泛的测试框架,有兴趣的话自己baidu一下。
testNG基于Junit和Nunit,并引入了很多特性,使其更强大和更易于使用。
有兴趣的可以直接看一下官网:http://testng.org/doc/index.html
用maven可以很方便的构建测试框架。
在这里以maven为例搭建一个测试框架
编辑pom.xml引入必要的jar包
UTF-8 1.6.3 2.1.1 5.1 4.12 org.powermock powermock-module-testng ${powermock.version} test org.powermock powermock-api-mockito ${powermock.version} test net.sourceforge.cobertura cobertura ${cobertura.version} test org.codehaus.sonar sonar-plugin-api ${sonar.version} test org.powermock powermock-module-junit4 ${powermock.version} test
基本的框架已经搭建,下面写一个最简单的测试类
很多例子取自<<PowerMock实战手册>><<Instant Mock Testing with PowerMock>>
http://wenku.baidu.com/link?url=hKW9B15IRoqIrjpWKYDeR_cGL9hRgYvbT7-rbds59i19l70qzGeW7x3Tzr24Vwuq-vWHggOq6XOs_saW33Li7E492UlXWM8JIpyKMyhvhwa
待测试类:
public class EmployeeService { public String hello(){ return "Hello word!"; }}
测试类:
public class EmployeeServiceTest { @Test public void hello(){ Assert.assertEquals(employeeService.hello(), "Hello word!"); }}
这是一个不能再简单的例子了,如果IDE有testNG插件的话,直接右键EmployeeServiceTest→run as→testNG test就可以运行。
结果如下:
[TestNG] Running: C:\Users\changzhz\AppData\Local\Temp\testng-eclipse--447685701\testng-customsuite.xmlPASSED: hello=============================================== Default test Tests run: 1, Failures: 0, Skips: 0==============================================================================================Default suiteTotal tests run: 1, Failures: 0, Skips: 0===============================================[TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@5f205aa: 344 ms[TestNG] Time taken by org.testng.reporters.JUnitReportReporter@424c0bc4: 47 ms[TestNG] Time taken by org.testng.reporters.jq.Main@2ff5659e: 196 ms[TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 0 ms[TestNG] Time taken by org.testng.reporters.EmailableReporter2@1996cd68: 4 ms[TestNG] Time taken by org.testng.reporters.XMLReporter@27ddd392: 13 ms
或者用maven运行 :mvn clean test
用maven调用时,请确保测试类以Test或testCase结尾
这个例子太简单了,只是简单说明怎么构架,怎么运行。