2013-03-25 100 views
0

第三方類我寫了一個夾具:如何嘲笑在FitNesse的

!define TEST_SYSTEM {slim} 
!path E:\eclipse\eclipse_workspace\FitnesseDemo\bin 

計算器實例

|com.example.qc.fixture.CalcFixture| 
|pad1|pad2|margin1|margin2|get Padding?|get Margin?| 
|7|8|8|8|25|26| 

在實際的代碼,我需要模擬一個第三方類。 (Delta) 我已經爲此編寫了代碼,但是如何將該代碼包含在fitnesse中。

我已經創建了一個設置頁包含以下內容:

!define TEST_SYSTEM {slim} 
!path E:\eclipse\eclipse_workspace\FitnesseDemo\bin 
!path E:\Docs\fitnesse\powermock-mockito-1.3.6-full.jar 
!path E:\Docs\fitnesse\mockito-all.jar 
!path E:\Docs\Junit\powermock-module-javaagent-1.4.10.jar 

|Import| 
|com.example.DeltaMock| 

嘲笑的對象沒有被調用。相反,真正的對象正在被調用。 我的SetUp頁碼錯了嗎?


首先我試圖在CalcFixture中進行模擬,但它總是以真實的對象。 在計算值夾具我有follwing代碼

public int getPadding() throws Exception { 

    Calc calc = new Calc(); 

    Delta ref = PowerMockito.mock(Delta.class); 

    PowerMockito.whenNew(Delta.class).withNoArguments().thenReturn(ref); 

    System.out.println("DeltaMocking.padding(rerf=== )" + ref); 

    Mockito.stub(ref.padding()).toReturn(10); 

    Padding = calc.addpadding(pad1, pad2); 

    return Padding; 

} 

Addpadding方法有以下代碼:

public int addpadding(int x, int y) { 

    int k=0; 

    Delta ref = new Delta(); 

    System.out.println("Calc.addpadding() refff="+ref); 

    int z = ref.padding(); 

    k = x + y + z; 

    return k; 
} 

嘲笑德爾塔的對象不會被調用。如果你正在測試與模擬對象或以假亂真的東西

請幫我通過它..

回答

0

你FitNesse的測試不應該關心。所有的工作都發生在CalcFixture - 這是你應該使用Mockito來模擬你需要的對象的地方。