2013-10-09 175 views
0

我寫一個JUnit測試斷言集合的大小不是的大小爲0編寫JUnit測試來測試一組

public interface Phone { 

public Set<PhoneSample> getPhone(); 
public void setPhone<Set<PhoneSample> phone> 
} 

public class DefaultPhone implements Phone{ 
private Set<PhoneSample> phone; 
@Override 
    public Set<PhoneSample> getPhone() { 
     return phone; 
    } 
} 
    @Override 
    public void setPhone(Set<PhoneSample> phone) { 
     this.phone = phone; 
    } 
} 
public class Test{ 
@Test 
    public void testOrder10() throws Exception { 
     Phone input = new DefaultPhone(); 

     int size = input.phone.getLength(); ///DOESNT WORK 
     assertThat(size, is > 0); 

    } 
} 

我最終希望能夠獲得的大小,並檢查它是否大於零。

我的第二個問題是,我將如何從測試類訪問set中的getPhone()方法。如果我添加更多的方法到我的集合中,我將如何從集合中訪問這些方法中的每一個。

+0

您可以詳細說明// DOESNT WORK嗎? –

回答

1
int size = input.phone.getLength(); ///DOESNT WORK 

應該是:

int size = input.getPhone().size(); 
0

而不是暴露和測試Phone類的成員,你應該問的手機界面直接例如實現size()方法,這樣你可以測試通過:

int size = input.size(); 

否則你只是露出Phone對象的實現。我會調查並在這裏應用Law Of Demeter,然後讓Phone對象儘可能地爲您完成工作。