gpt4 book ai didi

java - 简化测试目录内容/文件的代码

转载 作者:行者123 更新时间:2023-12-02 16:42:39 25 4
gpt4 key购买 nike

我有以下测试代码来检查特定目录结构的内容

assertThat(install_should_not_fail).isDirectory().satisfies(isnf -> {
assertThat(new File(isnf, "maven-metadata-local.xml")).isNotEmpty();
assertThat(new File(isnf, "1.0")).isDirectory().satisfies(v10 -> {
assertThat(v10).satisfies(file -> {
assertThat(new File(file, "install_should_not_fail-1.0.jar")).isNotEmpty();
assertThat(new File(file, "install_should_not_fail-1.0.pom")).isNotEmpty();
assertThat(new File(file, "_remote.repositories")).isNotEmpty();
});
});
});

我有几个测试非常相似。问题是:这是否可以变得更简单(我知道我可以重构出一个完全包含该代码的方法)但我更感兴趣的是如果可能的话使用 AssertJ 使上述代码更简单?

最佳答案

我会建议一种不使用满足的方法来避免嵌套 block :

assertThat(install_should_not_fail).isDirectory();
assertThat(new File(install_should_not_fail, "maven-metadata-local.xml")).isNotEmpty();

File v10 = new File(install_should_not_fail, "1.0");
assertThat(v10).isDirectory();
assertThat(new File(v10, "install_should_not_fail-1.0.jar")).isNotEmpty();
assertThat(new File(v10, "install_should_not_fail-1.0.pom")).isNotEmpty();
assertThat(new File(v10, "_remote.repositories")).isNotEmpty();

我觉得这让代码更轻盈、更易读(至少对我而言)。

此外,我认为这是软断言的一个很好的候选者,以便报告所有断言错误,而不是在第一个错误时失败。

关于java - 简化测试目录内容/文件的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61287655/

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