我需要为我的方法编写单元测试。我遇到了一些麻烦,因为我是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