【问题标题】:junit without any mocking framework没有任何模拟框架的junit
【发布时间】:2018-04-21 08:49:03
【问题描述】:

假设我有一个类的方法:

public String method1(someparameters) {
       //Calls methods of a different objects
       result2 = object2.method2(someparams )
       result3 = object3.method3(someparams)
       // Does bunch of work in method1
       ...................
       ...................
       return result
 }

object2.method2object3.method3 不需要模拟它们。 换句话说,如果传递了正确的参数,他们可以完成他们的工作并返回结果。我的问题:在为 method1 编写单元测试时,我是否强制需要模拟 object2 和 object3 的调用?换句话说,在单元测试中是否必须进行模拟?

【问题讨论】:

标签: java unit-testing


【解决方案1】:

不,使用模拟框架不是强制性的,但可能更方便。无论如何,最好的方法是将 object2 和 object3 作为接口并通过类的构造函数设置它们的实现。通过这种方式,您可以将简单的存根实现用于测试目的。接口中的方法太多,是不是违反了单一职责原则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多