저와 저의 코드에 무슨 문제가 있는지 알려주십시오. 간단한 예 :조롱 된 유형에서 새 객체를 반환하지 못했습니다.
public class RollingStockCreation {
@Mocked Plant plant;
@Mocked RollingStock rollingStockMock;
@Mocked WrenchManagerInjection wm;
@Test
public void rollingStockCreationWithTwoMocks(){
new Expectations(){
{
wm.getCar();
result = new Delegate() {
Cargo delegate(){
return new Cargo(4,55.3);
}
};
}
};
Assert.assertEquals(wm.getCar().getChassisCount(),4);
}
}
public class Cargo extends RollingStock {
protected String cargoType;
public Cargo(int chassisCount, double maxWeight){
this.chassisCount = chassisCount;
this.maxWeight = maxWeight;
}
public String getCargoType() {
return cargoType;
}
public void setCargoType(String cargoType) {
this.cargoType = cargoType;
}
}
public abstract class Plant {
RollingStock rollingStock;
public RollingStock construct(RollingStock rollingStock){
this.rollingStock = rollingStock;
return rollingStock;
}
}
public class WrenchManagerInjection {
Plant plant;
RollingStock rollingStock;
@Inject
public WrenchManagerInjection(Plant plant, RollingStock rollingStock) {
this.plant = plant;
this.rollingStock = rollingStock;
}
public RollingStock getCar() {
return plant.construct(rollingStock);
}
public static RollingStock getCar(Plant plant, RollingStock rollingStock) {
return plant.construct(rollingStock);
}
}
내가 필요로하는 것은 조롱 된 객체의 실제 실행 결과를 반환하는 것입니다. 나는 위임자를 사용하려고했는데, 간단한 결과 = 옵션과 returns()하지만 항상 4와 55.3을 기대할 때 0, 0.00을 반환합니다. 나는 모든 의존성을 하나씩 모의하려고 애썼다. 상위 레벨을 모의하고 그렇게했다. ... 나는 단지 학습을 위해서 그렇게한다. 개념적으로 잘못하면 가르쳐 줘. 나의 현재 목표는 모든 종속성을 모크 화하고 실행 중에 Cargo (4,55.3)를 반환하는 것입니다. 감사합니다.
오하이오 주 감사합니다. 나는이 시험 대상 클래스에서 다른 테스트를 잘라 냈습니다.이 테스트 클래스는 또한 조롱 된 객체를 사용했으며 어떤 일이 벌어 졌는지 완전히 잃어 버렸습니다. 이제 작동합니다! – Random