Java AppContext中具有相同名称和相同类的两个bean(一个正在模拟)

Java AppContext中具有相同名称和相同类的两个bean(一个正在模拟),java,spring,mocking,Java,Spring,Mocking,我有两个相同名称和相同类的bean。我想对其中一个进行模拟(模拟不是通过@mock注释完成的,而是由于某种原因在Spring文件中完成的),而让另一个保持正常(用于集成测试) 我可以想到的一种方法是更改@ContextConfiguration的location属性中的资源文件,并为单元测试和集成测试加载单独的配置 有没有其他方法来完成这项任务 我知道有一些问题,比如为什么不使用@Mock?,为什么要有两个相同类和相同bean的bean?,但我无法更改,因为某些部分已经存在,我不想更改 谢谢,如

我有两个相同名称和相同类的bean。我想对其中一个进行模拟(模拟不是通过
@mock
注释完成的,而是由于某种原因在Spring文件中完成的),而让另一个保持正常(用于集成测试)

我可以想到的一种方法是更改
@ContextConfiguration的location属性中的
资源文件
,并为单元测试和集成测试加载单独的配置

有没有其他方法来完成这项任务

我知道有一些问题,比如
为什么不使用@Mock?
为什么要有两个相同类和相同bean的bean?
,但我无法更改,因为某些部分已经存在,我不想更改


谢谢,

如果出于不同的目的需要,我有单独的配置文件。一个场景用于测试,另一个场景用于生产。我同意你的第一个想法。

但在我的例子中,两个文件都是用于测试的,一个用于junits,一个用于集成测试。所以,假设没有其他选择,我会采用这种方法。@instanceOfObject一个纯粹主义者会说,任何涉及Spring的东西都是一个集成测试。