2016-11-15 84 views
1

我想知道這是否是necesary寫一個JUnit測試一個通用的接口,在這種情況下,我有通用接口:實現該接口JUnit測試通用接口的Java

public interface Operable <T> { 

public T suma(T ele1); 
public T resta(T ele1); 
public T division(T ele1); 
public T multiplicacion(T ele1); 
} 

而且兩類:

public class Complex implements Operable<Complex> { 

private final double real, imag; 

public Complex(double real, double imag){ 
    this.real = real; 
    this.imag = imag; 
} 
.... 

public class Rational implements Operable<Rational>{ 
private int numerator; 
private int denominator; 

public Rational(int num, int den){ 
    if (den==0){ 
     throw new IllegalArgumentException(); 
    } 
    if (den<0){ 
     num*=-1; 
     den*=-1; 
    } 
    numerator = num; 
    denominator = den; 
} 
... 

我爲類的JUnit測試,但我不重盟友知道,如果有必要做這個接口的測試(什麼都不做)

謝謝

+0

你想測試一下界面?它可以編譯,也可以不編譯。 –

+0

它的工作原理,我想知道是否有方法來測試這種接口或者只是需要測試它。 – Alejandro

+0

'接口'不提供任何功能,它們只是任何實現類的*合約*。因此,測試這些實際類是最有意義的,因爲它們提供了您希望它們具有的行爲。你會爲接口測試什麼樣的行爲?他們沒有。 – QBrute

回答

1

號的接口定義了一個主叫方和被叫方之間的合同。單元測試應驗證此接口的實現符合本合同。

請注意,如果您使用的是Java 8,並且在接口中具有「默認方法」,則意味着該接口中已添加了一部分實現。在這種情況下,這些方法必須經過單元測試。

1

該測試只能適合類,但是當您爲某個類編寫測試時,可以使用該接口作爲參考。 所以簡短的答案是否定的。