Java org.mockito.Matchers.any()和jmockit出现问题

Java org.mockito.Matchers.any()和jmockit出现问题,java,junit,mockito,jmockit,Java,Junit,Mockito,Jmockit,我有一个UT使用jmockit和mockito 在这个UT中,我有一个字段@Tested TestService TestService testService有一个使用Car作为参数的方法:testService.doTestCar 然后我的UT:testService.doTestanyCar.class 当我调试这个UT时,我发现testService.doTestanyCar.class总是将null传递给doTestcar,如果我想要doTestcar中的Car实例呢 我试过Caran

我有一个UT使用jmockit和mockito

在这个UT中,我有一个字段@Tested TestService TestService

testService有一个使用Car作为参数的方法:testService.doTestCar

然后我的UT:testService.doTestanyCar.class

当我调试这个UT时,我发现testService.doTestanyCar.class总是将null传递给doTestcar,如果我想要doTestcar中的Car实例呢

我试过Carany,CaranyObject,但都没用,有什么想法吗

更新: 我有密码:

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
}};

我在codeResult=testService.doTest处收到MissingInvocation。。。似乎实例车与任何车都不匹配

Mock car=mockCar.class并在doTest中通过此车。希望这会有帮助 此外,如果您正在调用Car的任何方法,请确保您也定义了行为。 例如


mockito的mock不能模拟final类,所以我使用jmockit的'@Mocked',注意,在同一个测试中使用两个不同的mocking API并没有真正意义,因为每个API都有自己的方式来处理每件事。例如,在JMockit中,可以使用any、anyInt、anyString等字段进行参数匹配。另一件事是,anyCar.class、anyString等及其在JMockit中的等价物是记录或验证期望时使用的参数匹配器,而不是其他任何地方。我首先尝试使用所有JMockit,但失败了,我一定是做错了什么。我会更新问题显示更详细的代码。你在使用模拟API时犯了几个错误。我建议花几分钟的时间和你的朋友在一起。
final Car car;
new Verifications(){{
    codeResult=testService.doTest(car)
    //some codeResult assert
}};
when(car.getName(anyString())).then("bmw");