简体   繁体   English

无法在Spring Java bean中注入模拟?

[英]Unable to inject mock in Spring java bean?

I have a spring boot test as below 我有如下的弹簧启动测试

@SpringBootTest(class=AppConfig.class)
Public class AppTest{

   @Autowired
    private Product product

    @Test
     Public void test(){
      .....
      .....
     }
}

My AppConfig.class is as below 我的AppConfig.class如下

 Public clas AppConfig{

    @Mock
    EMailService emailService;

    public AppConfig(){
      MockitoAnnotations.initMocks(this)
    }


      @Bean
       Public Product getProduct(){
                return new Product();
         }
    }

Class Product{
@Autowired
private EMailService emailService
.....
......
}

Even after i defined @Mock EMailService emailService, whem i run the test, I get error EMailService bean not defined. 即使在定义@Mock EMailService emailService之后,我运行测试,却收到未定义的错误EMailService bean。

In your AppTest class 在您的AppTest类中

@SpringBootTest(class=AppConfig.class)
public class AppTest{

 @Mock
 private EMailService emailService;  

 @InjectMocks
 private Product product;

 @Test
 public void test(){
  .....
  .....
 }
}

Also, I think you do not need the definitions in the AppConfig class anymore 另外,我认为您不再需要AppConfig类中的定义

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM