我已经模拟了一个公共String方法:
Mockito.when(SomeClass.staticMethod(Mockito.anyString(), Mockito.any(ArrayNode.class), Mockito.anyString())).thenReturn(JSON_RESULT);
此方法在其指令中包含一个名为staticMethod
的静态方法调用,来自另一个类。
运行我的测试时,staticMethod
会被调用。为什么?我只想在调用String
时返回someMethod
。事实上它正在进入它并调用staticMethod
会使它破坏代码(因为staticMethod
使用路径来挖掘File
,它在单元测试中不知道1}} p>
编辑:我正在运行一个获取SQL文件内容(File
类)的服务测试,执行查询(使用Daos
类)并检索JSON
字符串
其中一种方法是获取一个File(使用另一个类中的静态方法),处理它并返回一个String。我嘲笑这个方法是为了返回我自己的JSON
字符串。
但它仍然进入该方法试图获取文件,处理它等等。因为我在单元测试环境中,我无法访问所有内容,因此NullException
错误我'在调用静态方法时得到。
为什么即使被嘲笑它仍然进入方法?
答案 0 :(得分:0)
我发现为什么它不起作用:我正在模拟的类被用作局部变量,而它应该在类变量中声明。