有没有办法提取方法中使用的实例和静态变量,以了解哪些对象需要被模拟

时间:2017-08-31 11:48:07

标签: java unit-testing mockito junit4

我正在开发涉及Mockito的JUnit测试用例。

在许多情况下,方法中使用了大量实例和静态变量。

手动检查方法中的所有代码行以了解需要模拟的对象是非常繁琐的,以便进行高级理解。

我想知道是否有更简单的方法来提取方法中使用的实例和静态变量。我也是JUnit和Mockito的新手。感谢。

1 个答案:

答案 0 :(得分:3)

你得出了错误的结论。

您发现为您的生产代码编写好的单元测试是 hard - 因为它包含许多需要模拟的东西。

你想通过某种方式解决这个问题自动模拟可能阻止你的生产代码在单元测试设置中运行的一切。

错误的方法:您正在尝试解决 症状

根本原因很可能是您编写难以测试生产代码。答案是:花时间和精力学习如何编写易于测试的生产代码。例如,从这些videos开始。

您可以看到,您的生产代码包含的任何类或方法都应遵循单一责任原则。仅这一点就可以驱使您使用包含最小个“外部依赖项”的生产代码。

除此之外:明白使用static基本上是一个好的OOP异常。当然,它有它的位置 - 但是只要“X是静态的”转换为“X打破我的单元测试”,你又一次做错了。使用static会破坏您对单元测试的能力,这清楚地表明您应该修复您的设计。