用maven搭建 testNG+PowerMock+Mockito測試框架


轉載: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結尾

這個例子太簡單了,只是簡單說明怎么構架,怎么運行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM