gpt4 book ai didi

java - 如何创建可重用的测试代码而不创建循环依赖项?

转载 作者:行者123 更新时间:2023-11-30 03:03:04 25 4
gpt4 key购买 nike

考虑两个项目。

  • mycompany-foo
  • mycompany-foo-tests

在 mycompany-foo 中,我定义了一些我想在许多其他项目中使用的对象。为了方便代码重用,mycompany-foo-tests 定义了可以匹配 mycompany-foo 对象的 hamcrest 匹配器。

问题是 mycompany-foo-tests 将依赖于 mycompany-foo 以便我为其创建匹配器。然后 mycompany-foo 将依赖于 mycompany-foo-tests,以便我可以在 mycompany-foo 的测试中进行一些匹配。这会产生循环依赖。我想避免的事情。

我通过简单地将匹配器添加到 mycompany-foo、删除“tests”项目并将包含匹配器的测试 jar 导出为“test-jar”来解决了这个问题。

一切都很顺利,直到我得知 Atlassian 的 clover 将其创建的 Artifact 安装到了我的 m2 存储库中[1]。这会覆盖我的测试 jar,并导致下游项目在无法初始化我的匹配器的 clover 版本时失败。

我看到的建议是不要创建测试 jar,而是回到我之前所做的事情。也就是说,为匹配器建立一个完整的独立项目。有没有办法在不创建循环依赖的情况下做到这一点?

[1] https://jira.atlassian.com/browse/CLOV-331

最佳答案

  1. 不要将生产代码及其测试/测试实用程序分离到单独的项目中。
  2. 不要为您的对象编写匹配器,有一些工具可以为您执行此操作(例如 shazamcrest )。

关于java - 如何创建可重用的测试代码而不创建循环依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35441498/

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