【问题标题】:Using EasyMock 3 IMockBuilder with Spring将 EasyMock 3 IMockBuilder 与 Spring 一起使用
【发布时间】:2011-12-21 19:50:03
【问题描述】:

我一直在研究使用 EasyMock 3 的 IMockBuilder 作为生成部分模拟的一种方式(我知道部分模拟可能表明存在设计缺陷,但我正在为旧代码编写测试)。大概我可以使用已弃用的静态 EasyMock.createMock() 方法在我的 Spring 配置中创建 bean,如下所示:

<bean id="myBean" class="org.easymock.EasyMock" factory-method="createMock">
    <constructor-arg value="org.mypackage.MyClass.class" />
</bean>

使用 IMockBuilder 创建部分模拟时,我需要多次调用 addMockedMethod() 来定义我想要模拟的方法。有没有办法在 Spring XML 配置文件中做到这一点?理想情况下,我希望我的所有 bean 的所有依赖项都由 Spring 设置,并且不想在我的测试用例中重写它们以便传入以这种方式创建的模拟对象。

谢谢

【问题讨论】:

    标签: spring dependency-injection mocking easymock


    【解决方案1】:

    不,XML 配置不具备那种灵活性。

    你有两个选择:

    1. 编写FactoryBean 的实现,它创建模拟,配置它,并将模拟返回给Spring。见Customizing instantiation logic with the FactoryBean Interface

    2. 在 Java 中使用 @Configuration 样式的配置,而不是 XML 样式的配置。这是最灵活的方法,通常比 XML 配置更好。见Java-based container configuration

    【讨论】:

    • 我们已经有了很多 XML 配置,我真的不想将它与注解驱动的配置混合在一起,但是 FactoryBean 方法满足了我的需求,所以我将使用它。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    • 2013-01-13
    • 2015-07-15
    • 1970-01-01
    相关资源
    最近更新 更多