2017-02-14 105 views
1

,因爲這種方法來測試這些樣的方法是在運行時執行的是有需要對其進行測試有沒有辦法使用的Mockito

public void addListener(RepeatRejectAnalysis_Listener rralistener) 
{ 
    Save_Button.addActionListener(rralistener); 
    Cancel_Button.addActionListener(rralistener); 
} 
+0

正如在另一個問題中提到的:你的命名模式是**不是**標準的java;你應該在那裏做一些學習。 – GhostCat

回答

1

一般來說它不覺得有必要對此進行測試類型的方法,因爲沒有業務邏輯。

但是,如果您急於這樣做,則可以檢查爲具有相同輸入參數的兩個不同對象調用addActionListener方法。類似這樣的:

// SETUP SUT 
RepeatRejectAnalysis_Listener yourRraListener = new RepeatRejectAnalysis_Listener(); 

// EXERCISE 
yourClass.addListener(yourRraListener); 

// VERIFY 
Mockito.verify(Save_Button, Mockito.times(1)).addActionListener(yourRraListener); 
Mockito.verify(Cancel_Button, Mockito.times(1)).addActionListener(yourRraListener); 

在這種情況下,你需要模擬你的Save_ButtonCancel_Button在您的測試。

2

您可能在這裏甚至不需要Mocking框架。

如果您有權訪問按鈕;你可以簡單地調用該方法;並且之後聲明每個按鈕在其ActionListener列表中都有該新偵聽器。

換句話說:你模擬的事情時對象很難建立在你的單元測試環境。例如:某些想要與數據庫交談的客戶可能需要嘲笑;但一個簡單的JButton ...可能不是。

請理解:嘲笑框架始終是第二的選擇。如果可能的話,你想直接在生產代碼元素上聲明/驗證。因此,不要模擬按鈕,而應關注能夠使用real按鈕運行測試,並使用它們提供的接口來驗證預期行爲。