Groovy Spock测试用例无法找到自动装配的bean

问题描述

我具有以下包和类的结构: 包com.abc.xyz.main.flow有两个类:

 ProcessA.java
 ProcessB.java
 

现在ProcessB为:

     public class ProcessB{
     
     @Autowired
     ServiceX serviceX;
     @Autowired
     ServiceY serviceY;
     
}

ServiceX的软件包是:com.abc.xyz.main.adm.service ServiceY的软件包是:com.abc.xyz.main.cmn.service

 I am writing groovy test case of ProcessA.java
 
package com.abc.xyz.main.flow


@SpringBoottest(classes = TestConfig.class)
@AutoConfiguremockmvc
public class ProcessASpec extends Specification {
  //mocking code for ProcessA class
}

运行时给出错误: com.abc.xyz.main.flow.ProcessB中的字段serviceX需要一个ServiceX类型的Bean

如何解决

解决方法

尝试将其添加到您的Class测试中:

@TestConfiguration
   static class ConfigurationClass{
  
        @Bean
        public ServiceX serviceX() {
            return new ServiceX();
        }
    }