【发布时间】:2016-07-18 21:57:53
【问题描述】:
我需要有关单元测试用例的帮助。
我想模拟 java.nio.file.Files 类的静态方法 write(Path path, byte[] bytes, OpenOption... options)。
我试过了。这样:
PowerMockito.doReturn(path).when(Files.class, "write", path, someString.getBytes());
在这种情况下,找不到方法。
PowerMockito.doReturn(path).when(Files.class, PowerMockito.method(Files.class, "write", Path.class, byte[]
.class, OpenOption.class));
这次我有UnfinishedStubbingException。
我怎样才能做到正确?
【问题讨论】:
-
为什么不按照你应该的方式使用假的
FileSystem?模拟静态方法已经是一种主要的气味。 -
第二路易斯--Java 的内置文件系统工具不适合模拟,即使使用 PowerMockito 之类的工具来超越 Mockito 的限制。
-
谢谢路易斯。我使用了您建议的方式,并使用了this 库来创建内存文件系统。它对我来说是更好的解决方案。
标签: java unit-testing junit mockito powermockito