Java 带模拟试验的Micronaut

Java 带模拟试验的Micronaut,java,unit-testing,junit,mockito,micronaut,Java,Unit Testing,Junit,Mockito,Micronaut,我需要在Micronaut中测试我的服务层。 我在我的服务层中使用bean验证,所以我需要在测试阶段注入验证器,我不能只是模拟它。然而,我想模拟其他一些类,所以我也在使用Mockito 问题是,如果我将@MicornautTest放在我的类上,所有标有@Inject的bean都不为Null,这意味着@Inject工作正常。但是,只要我将@ExtendWith(MockitoExtension.class)添加到类中并重新运行测试,所有标记为@Inject的方法现在都为null,所有标记为@Moc

我需要在Micronaut中测试我的服务层。 我在我的服务层中使用bean验证,所以我需要在测试阶段注入验证器,我不能只是模拟它。然而,我想模拟其他一些类,所以我也在使用Mockito

问题是,如果我将@MicornautTest放在我的类上,所有标有@Inject的bean都不为Null,这意味着@Inject工作正常。但是,只要我将@ExtendWith(MockitoExtension.class)添加到类中并重新运行测试,所有标记为@Inject的方法现在都为null,所有标记为@Mock的bean都不为null

所以看起来要么我可以在测试中使用@Inject,要么我可以使用@Mock,但不能同时使用两者

@MicronautTest
@ExtendWith(MockitoExtension.class)
class CashServiceTest {

@Inject
private Validator validator;

@Mock
private AvailableCashClient availableCashClient;

以前有没有人遇到过类似的问题?您能否指导我正确的配置,使我能够在相同的测试中同时使用@Inject和@Mock。

我能够找到问题,并且能够同时使用模拟bean和原始注入bean。 问题是我们不应该使用@extendwithannotation,只需使用@micronaut test就可以实现所有功能

我正在粘贴我所做设置的代码。在本例中,BusinessClient是被模拟的bean,Validator是在没有被模拟的情况下被注入的bean

@微型自动测试 类CashServiceTest{

@Inject
AvailableCashClient availableCashClient;

@Inject
Validator validator;

@MockBean(AvailableCashClient)
public AvailableCashClient availableCashClient() {
    return Mockito.mock(AvailableCashClient);
}