[英]Issue with org.mockito.Matchers.any() and jmockit
我有一個使用jmockit和mockito的UT
在這個UT中,我有一個字段@Tested TestService testService
testService有一種使用Car作為參數的方法: testService.doTest(Car car)
然后我的UT: testService.doTest(any(Car.class))
當我調試此UT時,我發現testService.doTest(any(Car.class))
總是將null傳遞給doTest(car)
,如果我想要在doTest(car)
中doTest(car)
Car的實例該doTest(car)
辦?
我嘗試了(Car)any()
, (Car)anyObject()
,它們都沒有幫助,有什么想法嗎?
更新:我有代碼:
class TestService{
@AutoWired
Dependency dependency;
doTest(Car car){
dependency.doSomeThing(car);
print(car.toString());
}
}
UT代碼:
@Injectable Dependency mockDependency;
@Tested TestService testService;
//record
new Expectations() {{
mockDependency.doSomeThing((Car)with(any));
result=detailCar;
}};
//call verify
new Verifications(){{
codeResult=testService.doTest((Car)with(any))
//some codeResult assert
}};
這是所有jmockit版本,我在car.toString()
處獲得NullPointerException
如果我將其更改為:
new Verifications(){{
codeResult=testService.doTest(new Car())
//some codeResult assert
}};
要么
final Car car;
new Verifications(){{
codeResult=testService.doTest(car)
//some codeResult assert
}};
我在codeResult=testService.doTest(...)
收到MissingInvocation ,似乎instance car
與(Car)with(any)
不匹配
Mock car = mock(Car.class)
並在doTest中傳遞此car
。 希望對您有所幫助。另外,如果您要調用Car的任何方法,請確保還定義了行為。 例如
when(car.getName(anyString())).then("bmw");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.