我有一个基类依赖于另一个类来进行一些特殊的缓存。我还写了特殊的缓存类。
我可以测试它,以便将特殊的缓存类作为模拟传递,以确保基类按预期工作,或者我可以使用真实的类来确保整个事情按预期工作。
如果我使用真实的类,我不必在测试缓存类时复制测试逻辑,因为这是它的唯一用例(目前)。
最好的想法可能是编写两个测试(使用模拟和使用真实类),但其他开发人员可能会混淆为什么我测试它两次。
我应该在这里使用 mock 还是真正的类?
最佳答案
如果它能完成工作,你为什么要模拟真正的类?
我的建议是:
- 在其测试用例中测试您的类功能,缓存除外,
- 在缓存测试用例中测试缓存
我不会对此感到困惑,只要您的缓存类的测试是详尽无遗的:如果缓存导致问题,缓存测试应该失败,而不是您的外部类。
关于unit-testing - 什么时候不使用 mock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7846581/