gpt4 book ai didi

java - WatchService 在集成测试中不起作用

转载 作者:行者123 更新时间:2023-11-30 07:33:43 26 4
gpt4 key购买 nike

我有一个 scala 类,它使用 java nio WatchService 来检测特定目录中新文件夹的创建。

当应用程序运行并且我手动将文件夹复制到目标文件夹时,WatchService 运行良好。

我使用 scalatest 创建了一个单元测试,它初始化我的类并使用 Apache Commons 将测试文件夹复制到目标文件夹中

FileUtils.copyDirectory(testFolder, new File(targetFolder, testFolder.getName), false)

监视服务在 30 秒内未检测到目标文件夹中创建的任何新条目。我的代码位于类似于

的最终 block 内
eventually(timeout(Span(30, Seconds)), interval(Span(1, Seconds))) {
// CHECK IF THE SERVICE DETECTED THE NEW ENTRY
}

知道为什么这在单元测试中不起作用吗?

最佳答案

刚刚发现问题出在我使用 scalatest 的方式上。我试图使用固定装置在功能边界中打开/关闭我的服务:

describe("The WatchService") {
withWatchService { watchService =>
it("should test feature 1") { /* test code here */ }
it("should test feature 2") { /* test code here */ }
}
}

上面的代码不起作用:在功能完成之前, watch 服务已关闭。为了使其工作,我创建了一个独特的功能,其中包含嵌套的夹具:

describe("The WatchService") {
it("should test features") {
withWatchService { watchService =>
/* test code here */
}
}
}

关于java - WatchService 在集成测试中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35704815/

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