@primary注释不适用于JUnit测试

时间:2019-06-04 15:18:33

标签: java spring

我有一个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注释在这里不起作用。

1 个答案:

答案 0 :(得分:1)

看起来您可能需要在配置下面。

spring.main.allow-bean-definition-overriding=true

如果覆盖仅用于测试,则可以在测试配置文件中尝试。

ref-date_range