簡體   English   中英

如何測試界面?

[英]How can i test an interface?

我想為接口做一個JUnit測試用例,因為您知道我無法從該接口創建對象,並且我不想在該測試中顯示任何類名,我只想測試該接口,並且只在測試中使用它的方法。

所以,我不能實例化一個對象:

Interface obj = new Class(); 

因為我不會使用任何類方法,並且我也不想將接口實例化為:

Interface var = new Interface{//methods};

因為我不想覆蓋測試中的方法。

更新:

i have an interface and a class which implements it:
public interface inter {
public void method1();
public void method2();
}


public class BlaBla implements inter{
@override
public void method1(){//stuff}
@override
public void method2(){//stuff}
}

我想測試BlaBla,但要處理其接口(內部)。

interface是合同。 它沒有邏輯可以測試。

您可以使用Mockito類的Mockito框架來創建interface的實例,而無需手動對方法進行Mockito 但這只會在后台將它們存根。

你要問自己,你想考什么 鑒於interface方法沒有實現,因此沒有 要測試的代碼。

說我有一個像這樣的interface

public interface DoesStuff {
    void doStuff();
}

有什么要測試的? 我唯一說的是,我想要一個implements DoesStuff的類implements DoesStuff doStuff

測試接口的唯一方法是創建一個實現該接口的具體類,將其實例化並測試該類。 您不能直接測試接口,因為如您所知,它不能被實例化,沒有任何東西可以測試。 這應該很明顯:接口只是方法簽名的集合,沒有方法主體-因此沒有要測試的行為。

接口中沒有要測試的功能(因為它無法實例化;它沒有方法實現)。 因此,JUnit無法對其進行任何處理。

您可以為單元測試創建一個抽象基類 對於實現接口的特定類,單元測試將僅擴展抽象基類。

抽象基類可以測試事情,應該持有,像closeopen或其他東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM