簡體   English   中英

org.mockito.Matchers.any()和jmockit問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM