我在模拟注入控制器的对象时遇到了问题。
我正在进行集成测试。在我的测试中,我有以下设置:
@RunWith(SpringRunner.class)
@SpringBootTest
public class AuthenticationTests {
@TestConfiguration
public class Config {
@Bean
@Primary
public AbstractClient client() {
return new AbstractClient() {
@Override
public ManagedChannel getChannel() {
return new ManagedChannel();
}
};
}
}
}
在正在测试的控制器中,AbstractClient
是依赖注入的,如下所示:
@Controller
public class MyController {
private ManagedChannel managedChannel;
public MyController(AbstractClient client) {
managedChannel = client.getChannel();
}
}
每当我运行测试时,@TestConfiguration类中定义的AbstractClient都不会被注入 - 而是默认注释(注释为@Service)。
有人可以帮忙吗?