gpt4 book ai didi

java - 监视 Mockito 中的路径

转载 作者:行者123 更新时间:2023-12-01 13:11:57 28 4
gpt4 key购买 nike

我正在尝试使用 Mockito监视路径 em>

dirSpy = spy(Files.createTempDirectory(DIR_NAME));

我收到一条错误消息

Mockito cannot mock this class: class sun.nio.fs.UnixPath
Mockito can only mock visible & non-final classes.
If you're not sure why you're getting this error, please report to the mailing list.

[如果您认为需要,我可以发布更长的堆栈跟踪]

我认为这是因为路径有一个 native 实现 - 我的问题是是否有一些解决方法可以让我检查测试期间是否访问了特定位置

我要测试的内容-我为每个用户都有一个目录结构 - 我想做一个测试,检查在没有用户的情况下,没有完成多余的工作,并且所有用户的根目录都没有被访问。

在我的整体测试逻辑中,这是一个小的验证,我可以不用它 - 只是认为这是很好的东西

最佳答案

my question is if there is some workaround that will enable me to check if a specific location was accessed during a test

是的,使用 WatchService .

请注意,如果您能够做到这一点,观察路径本身不会给您带来太多:对 Path 的操作不会执行 I/O,除了 .toRealPath( ) if 被调用并且if 文件系统有符号链接(symbolic link)支持(好吧,你使用一些 Unix 变体,所以很可能是这种情况)。真正的I/O是由路径的FileSystemProvider完成的。 。但你也无法窥探到这一点......

因此,WatchService 是您的最佳解决方案。

参见here举个例子。请注意,WatchService 依赖于文件系统;这意味着您仍然从您可以监视的类中执行文件 I/O 会更好;)

关于java - 监视 Mockito 中的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22784952/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com