我有以下课程:
public interface Emailer {}
@Named
public class RealEmailer implements Emailer {}
@Named
public class NoOpEmailer implements Emailer {}
我的服务类别使用了真正的电子邮件程序:
public class SomeService {
@Inject
private Emailer emailer;
}
问题是,在我的服务测试类(
SomeServiceTest
)中,如何在服务中注入Emailer
以使用NoOpEmailer
?我将Spring用于DI框架。 最佳答案
如果可以使用Spring 3.1,则可以使用Profiles。这将允许您提供同一bean的两种不同实现(Emailer和NoOpEmailer)。然后,在测试中,您可以使用@Profile(“ test”)批注来激活测试配置文件,并且不会注入任何op Bean。