轉載: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包
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<powermock.version>1.6.3</powermock.version>
<cobertura.version>2.1.1</cobertura.version>
<sonar.version>5.1</sonar.version>
<junit.version>4.12</junit.version>
</properties>
<dependencies>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-testng</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.sourceforge.cobertura</groupId>
<artifactId>cobertura</artifactId>
<version>${cobertura.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.codehaus.sonar</groupId>
<artifactId>sonar-plugin-api</artifactId>
<version>${sonar.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
基本的框架已經搭建,下面寫一個最簡單的測試類
很多例子取自<<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.xml
PASSED: hello
===============================================
Default test
Tests run: 1, Failures: 0, Skips: 0
===============================================
===============================================
Default suite
Total 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結尾
這個例子太簡單了,只是簡單說明怎么構架,怎么運行。

