【问题标题】:When to choose static utility and when spring component何时选择静态实用程序以及何时选择弹簧组件
【发布时间】:2020-12-01 14:12:35
【问题描述】:

我们有一个遗留项目,它在该项目中使用了许多静态实用程序。

现在我们要写这个项目的Junit,会做一些重构。 一些静态实用程序类在编写某些类的 Junit 时会产生问题。

我们是否应该将所有这些静态实用程序重构为 Spring 组件?


我有几点想法:

  • 在编写 Junit 时,它还会调用静态实用程序。它是否仍被视为单个 Junit 或集成测试,因为它会测试多个公共方法的功能?
  • 一些实用程序还使用额外的依赖项,因为这是在单独的文件中,我们无法模拟这些依赖项,因此 Junit 失败。
  • 那些静态工具的Junit会写在单独的文件中,那为什么要在多个文件中测试这些静态工具呢?

【问题讨论】:

    标签: spring spring-boot junit mockito refactoring


    【解决方案1】:

    我们是否应该将所有这些静态实用程序重构为 Spring 组件?

    1. 恕我直言:如果目前这些静态实用程序不依赖于 Spring,则不应添加额外的冗余依赖项。

    2. 您建议重构以便能够编写重构测试。但是你不想在没有测试的情况下进行重构。你在这里看到递归吗? )

    我们不能模拟这些依赖项

    1. 难道不是考虑更好的设计以允许模拟外部依赖项的理由。也许它可能是即将到来的重构的一部分?

    为什么要在多个文件中测试这些静态实用程序?

    您可以构建测试one way or another。我现在更重要的是定义目标覆盖范围并达到它。例如。您可以将目标覆盖率指定为:100% 类、70% 分支、80% 行等。

    祝测试和重构顺利!

    【讨论】:

      猜你喜欢
      • 2011-09-29
      • 1970-01-01
      • 2011-09-22
      • 2019-02-06
      • 2012-03-28
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多