我有一个方法
class Garage{
public Noise myMethod(){
Car mycar = getCarService().getCar("ford");
Noise brum = mycar.drive();
return brum;
}
...
}
我想模拟服务和汽车,所以我创建了一个模拟,如下所示
MyCarService carMock = createMock(Car.class)
MyCarService mockServce = createMock(MyCarService.class)
expect(mockService.getCarService().andReturn(carMock));
expect(carMock.drive().andReturn("brummmm"));
replayAll();
Garage garage = new Garage();
garage.setCarService(mockService);
Noise n = g.myMethod();
但是,当我运行代码时,mockservice总是将mycar作为null返回。你能用easyMock做这种事情吗?
发布于 2011-12-16 23:36:32
您不应该包括这一行:garage.setCarService(mockService);
。
您所需要做的就是期望调用mockService.getCarService(),您已经这样做了。
因此,当您通过调用g.myNewMethod运行测试时,当myNewMethod调用getCarService()方法时,它将返回您的mockService。
但是,您缺少对被调用的getCar方法的期望。您需要:
expect(mockServce.getCar("ford")).andReturn(carMock);
https://stackoverflow.com/questions/8490340
复制相似问题