Mockito doReturn 无法按预期工作



我正在尝试编写一些测试来验证对Context#getFilesDir()目录中的文件进行操作的类。我正在使用java.nio.file.Files#createTempDirectory创建一个目录来模拟getFilesDir()输出,然后在调用getFilesDir时使用 Mockito 返回它。

Mockito似乎每次都会创建一个新的临时目录,即使我将createTempDirectory的结果声明为类变量并将其用于我的spy上下文。这导致测试与清理步骤一起失败,因为我有六个或七个目录,而不是一个目录,这违反了正在测试的类所需的状态。

这是我提交的链接,显示了我到目前为止编写的代码:https://github.com/msfjarvis/viscerion/commit/b1504d7206

事实证明,Mockito的工作做得很好。这里的问题是我对JUnit的理解很差。@Before注释在每次测试之前运行该方法,这不是我想要的,因为我正在寻找在测试类时运行一次的方法。正确的注释是@BeforeClass解决了问题。非常感谢这篇解释差异的文章。