【问题标题】:Spring Boot Unsatisfied dependencySpring Boot 不满足的依赖
【发布时间】:2021-07-19 20:57:59
【问题描述】:

我有以下代码。我确实相信我正确地创建了 bean,但我不断收到这个“错误创建带有名称的 bean...:通过字段表达的不满足的依赖关系...”

代码在没有测试的情况下构建和运行良好。但我需要测试...

我一直在寻找高低,但似乎没有适合我的解决方案。我已经处理这个错误一段时间了,所以任何帮助都会很棒!

@Service(value = "serviceA")
public class ServiceA{

     @Autowired
     private ServiceB

     ...

}

@Service(value="serviceB")
public class ServiceB{
  
     ...

}

@SpringBootTest
@ContextConfiguration({"/app-name-mocks.xml"})
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
public class TestingClass{
     
     @Autowired
     private ServiceA serviceA;

     @Autowired
     private ServiceB serviceB;

     ...
     
}

app-name-mocks.xml:

<bean id="serviceA" class="com.appname.service.ServiceA" />

<bean id="serviceB" class="org.easymock.EasyMock" 
      factory-method="createNiceMock">
      <constructor-arg name ="toMock"
          value="com.appName.service.ServiceB"/>
</beans>

【问题讨论】:

  • 可能不相关但你使用constructor-arg但你没有它(或显示它)并且错误显示使用字段而不是通过字段表示的构造函数
  • 你能用stacktrace发布你得到的完整异常吗?
  • 您使用的是什么版本的 Spring?是否需要使用 XML?我认为您可以直接使用 @Import({ServiceA.class, ServiceB.class}) 导入 bean
  • 或 @ContextConfiguration(classes = { ServiceA.class, ServiceB.class })

标签: java spring spring-boot mockito easymock


【解决方案1】:

Easymock 似乎不能很好地与 Spring boot 配合使用,所以我必须改变一些东西并稍微清理一下项目。谢谢大家!

【讨论】:

  • 我应该打得很好。有什么例外?
猜你喜欢
  • 2018-09-29
  • 2018-06-10
  • 1970-01-01
  • 2012-09-11
  • 2022-11-13
  • 2018-10-03
  • 2019-07-20
  • 1970-01-01
  • 2017-08-09
相关资源
最近更新 更多