【问题标题】:unit test avoid class B constructor call in class A test method单元测试避免在 A 类测试方法中调用 B 类构造函数
【发布时间】:2017-11-23 00:33:29
【问题描述】:

我有 ClassA 和 ClassB,我在 Class B 构造函数中实例化了一些仪器依赖项,所以我想避免在测试 Class A 的 foo 方法时调用 Class B 构造函数。 A 类的 foo 方法创建了 B 类的一个实例。我正在使用 mockito 有没有办法告诉测试用例,当调用 TestClassA.foo() 方法时不要实例化 ClassB,而是返回虚拟 ClassB。

【问题讨论】:

    标签: java android unit-testing


    【解决方案1】:

    我通过将 B 类实例化责任委托给工厂类解决了我的这个问题。 然后在测试的时候使用mockito来模拟工厂类,调用makeClassB()方法获取ClassB的实例,同样使用Mockito.when(factoryMock.makeClassB(anyParameters)).thenReturn(MockClassB)

    现在在 TestClassA 中我可以调用 ClassA 的 foo() 方法,该方法现在使用 Factory 类来创建 ClassB 的实例,而不是直接创建 ClassB 实例。

    查看此帖子https://stackoverflow.com/a/21262999/3805770

    【讨论】:

    • 感谢您发布您的解决方案!
    猜你喜欢
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多