Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 在另一个对象中创建的模拟对象_Unit Testing_Junit_Mockito - Fatal编程技术网

Unit testing 在另一个对象中创建的模拟对象

Unit testing 在另一个对象中创建的模拟对象,unit-testing,junit,mockito,Unit Testing,Junit,Mockito,我正在尝试使用JUnit和Mocktio为类创建一个单元测试。 在这个类中,有几个来自单例的方法调用,比如 Singleton.getInstance().doSomething(value); 我知道值的类型。(构造函数或任何方法中都没有用于处理singleton引用的参数) 有可能嘲笑单身汉吗?我的第一个想法是调用Mockito.mock(Singleton.class)并将其作为参数传递,但随后我必须更改该类以接受Singleton作为参数-这对我来说没有意义 (我同意这可能是一个设计缺

我正在尝试使用JUnit和Mocktio为类创建一个单元测试。 在这个类中,有几个来自单例的方法调用,比如

Singleton.getInstance().doSomething(value);
我知道值的类型。(构造函数或任何方法中都没有用于处理singleton引用的参数) 有可能嘲笑单身汉吗?我的第一个想法是调用Mockito.mock(Singleton.class)并将其作为参数传递,但随后我必须更改该类以接受Singleton作为参数-这对我来说没有意义


(我同意这可能是一个设计缺陷,但目前我无法重构该单例的使用)。

这里的问题是Mockito不允许模拟静态方法(
getInstance
)。但是
JMockit
Powermock
都允许这样做

使用Mockito的另一个选项可能取决于
getInstance
中的代码。如果这是检查/返回字段,则可以使用反射将该字段分配给模拟实例