如何在Spring上下文中注入模拟?

我想安排一个Spring实例对象作为Mock而不是通常构造的实例来完成集成测试。

被模拟的对象不是被Spring注入成员变量,而是通过查询Spring上下文来访问。 一个例子(供参考):

class Service {
    public void doIt() {
        Helper helper = new Helper();
        helper.doIt();
    }
}

class Helper {
    public void doIt() {
        BeanFactory factory = getBeanFactory(); // A function to get the bean factory
        Target target = (Target)factory.getBean("target");
        target.doIt();
    }
}

class Target {
    public void doIt() {
        // Something interesting.
    }
}

我想模拟Target以验证对Service.doIt()的调用调用Target.doIt()。

Helper的实例是动态的,即Helper不是Spring对象,并且仅在短时间内存在,作为这两个接口之间的链接。

我们使用(大)spring xml文件进行配置,因此最好避免使用多种配置进行测试。

我如何模拟Target以便从Spring Bean工厂检索Mock?

链接地址: http://www.djcxy.com/p/82053.html

上一篇: How do I inject a mock into the Spring context?

下一篇: Spring / Mock components that are retrieved by using the context directly