如何将模拟注入Spring上下文?

时间:2015-02-23 19:40:30

标签: java spring mocking

我想安排一个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.
    }
}

我想要Mock Target以验证对Service.doIt()的调用是否调用了Target.doIt()。

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

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

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

0 个答案:

没有答案