【问题标题】:Mocking out legacy libraries模拟遗留库
【发布时间】:2016-08-16 03:50:32
【问题描述】:

我正在处理一个遗留项目,该项目具有许多外部依赖项,并且类紧密耦合,几乎不可能进行单元测试。我知道解决这个问题的最佳方法是进行重大重构,但目前我们没有这样做的奢侈,因为该项目几乎是 0 次测试,所以我们非常担心会出现问题。

我们目前正在努力实现的是快速提出单元/组件测试,并在我们处理项目时逐步重构。对于组件测试,我正在考虑在现有类上使用某种包装器来“记录”输入和输出,然后将其保存到物理文件中。当我们运行测试时,它会根据输入返回输出。

我想实现的方法是将方法名称和输入参数存储为键,将输出存储为值。输出将在“记录”时序列化,并在测试期间反序列化。

这种方法似乎能够满足某些情况.. 但我预见到以后会有很多并发症。例如:我可能会面临一些序列化某些对象的问题。而且我也可能会遇到从“out”参数传递对象引用的困难。

所以我的问题来了。有没有做所有这些事情的图书馆?如果有一个库,我永远不会考虑手动执行此操作。顺便说一句,我正在使用 Java。

谢谢

【问题讨论】:

    标签: java unit-testing mocking


    【解决方案1】:

    我不会进行低级单元测试,而是先测试您现在可以划分的最小单元,即可能只有一个。您可以使用不需要将对象标记为可序列化的序列化库来捕获数据输入和输出,例如杰克逊。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      • 1970-01-01
      • 1970-01-01
      • 2012-05-02
      • 2022-01-17
      • 2011-01-17
      • 1970-01-01
      相关资源
      最近更新 更多