我需要爲我的方法編寫單元測試。我遇到了一些麻煩,因爲我是JUnit的新手。我需要爲我創建的對象類型的getter方法編寫一個測試。對象類型是UnitInfo,並且我需要爲該方法編寫一個測試方法JUnit測試自定義對象類型的getter方法
@Override
public UnitInfo getInfo() {
return info;
}
在類的構建中。我在下面的代碼中放置了我的建築類,UnitInfo類和buildingTest類。任何幫助表示讚賞。
package main.model.facility;
import java.util.List;
public class UnitInfo {
private int capacity;
private String name;
private int idNumber;
private List<String> details;
public int getCapacity() {
return capacity;
}
public void setCapacity(int capacity) {
this.capacity = capacity;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getIdNumber() {
return idNumber;
}
public void setIdNumber(int idNumber) {
this.idNumber = idNumber;
}
public List<String> getDetails() {
return details;
}
public void setDetails(List<String> details) {
this.details = details;
}
public void addDetail(String detail) {
details.add(detail);
}
public void removeDetail(String detail) {
details.remove(detail);
}
}
建築類:
package main.model.facility;
import java.util.List;
public class Building extends Facility {
private List<IFacility<UnitInfo>> subunits;
private UnitInfo info;
private ScheduleManager schedule;
@Override
public UnitInfo getInfo() {
return info;
}
@Override
public ScheduleManager getScheduleManager() {
return schedule;
}
@Override
public List<IFacility<UnitInfo>> listFacilities() {
return subunits;
}
@Override
public int requestAvailableCapacity() {
int availableCapacity = 0;
for (IFacility<UnitInfo> subunit : subunits){
availableCapacity += subunit.requestAvailableCapacity();
}
return availableCapacity;
}
}
Junit的
public class BuildingTest {
Building defaultBuilding = new Building();
ScheduleManager defaultSchedule = new ScheduleManager();
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Test
public void testGetInfo() { //this is the test I need to write
Building b = defaultBuilding;
assertEquals(b.getInfo(), null);
}
@Test
public void testGetScheduleManager() {
Building a = defaultBuilding;
assertEquals(a.getScheduleManager(), null);
}
http://stackoverflow.com/a/21355383/1878022這個答案將幫助你 – VedX
只是爲了記錄:從「良好設計」的角度來看:儘量讓你的領域儘可能多**最後**儘可能。看起來很容易讓他們被setter改變;但很多時候它實際上具有**沒有**價值。所以,在創建一個對象時,最好後退一步,仔細確定哪些信息應該是**強制性的,並且不能更改。這**也**減少了你必須測試的代碼量! – GhostCat