我有一个Spring应用程序,我在其中使用EasyMock在JUnit测试中进行模拟。
我在下面定义了三个类(假设A,B和C)。
@Named("A")
@Primary
public class A {
}
@Named("B")
public class B extends A {
}
public class C {
@Inject
private A a; // It should inject A instance here since it is marked as primary
}
public class CTest {
@Mock
private A a;// Here I'm getting exception
}
在CTest类中运行测试时,出现错误 期望单个匹配的Bean,但发现2:(A和B)。
为什么@primary注释在这里不起作用。
答案 0 :(得分:1)
看起来您可能需要在配置下面。
spring.main.allow-bean-definition-overriding=true
如果覆盖仅用于测试,则可以在测试配置文件中尝试。
ref-date_range