【发布时间】:2020-05-26 09:59:33
【问题描述】:
我有一个类,它执行以下操作:
public class Transformer {
public void transform(final Car car) throws IOException {
switch (car.getType()) {
case OFFROAD:
OffroadCar offroadCar = new OffroadTransformer().transform(car);
// do something with offorad car
break;
...
}
}
}
我有一个测试班:
public class TransformerTest {
@InjectMocks
private Transformer transformer;
@Mock
private OffroadTransformer offroadTransformer;
@BeforeEach
public void setup()
MockitoAnnotations.initMocks(this);
}
@Test
public void testTransform() throws IOException {
final Car car = new Car(OFFROAD);
when(offroadTransformer.transform(any(Car.class))).thenReturn(new OffroadCar());
transformer.transform(car);
// make some verifictations
}
}
我现在的问题是when 不起作用。真正的offroadTransformer.transform 被调用而不是模拟。所以我的假设是模拟不起作用,因为OffroadTransformer 不是Transformer 类的成员,并且实例是内联创建的。
对吗?
如果是:我怎么能模拟它? 如果不是:还有什么原因?
【问题讨论】:
标签: java unit-testing mockito