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

时间:2018-11-07 00:21:06

标签: java spring-mvc spring-boot spring-bean

我进行了如下的弹簧启动测试

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

   @Autowired
    private Product product

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

我的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
.....
......
}

即使在定义@Mock EMailService emailService之后,运行测试后,我仍然收到未定义的错误EMailService bean。

1 个答案:

答案 0 :(得分:0)

在您的AppTest类中

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

 @Mock
 private EMailService emailService;  

 @InjectMocks
 private Product product;

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

此外,我认为您不再需要AppConfig类中的定义