【发布时间】: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