unit-testing - 什么时候不使用 mock

标签 unit-testing testing language-agnostic mocking bdd

我有一个基类依赖于另一个类来进行一些特殊的缓存。我还写了特殊的缓存类。

我可以测试它,以便将特殊的缓存类作为模拟传递,以确保基类按预期工作,或者我可以使用真实的类来确保整个事情按预期工作。

如果我使用真实的类,我不必在测试缓存类时复制测试逻辑,因为这是它的唯一用例(目前)。

最好的想法可能是编写两个测试(使用模拟和使用真实类),但其他开发人员可能会混淆为什么我测试它两次。

我应该在这里使用 mock 还是真正的类?

最佳答案

如果它能完成工作,你为什么要模拟真正的类?

我的建议是:

  • 在其测试用例中测试您的类功能,缓存除外,
  • 在缓存测试用例中测试缓存

我不会对此感到困惑,只要您的缓存类的测试是详尽无遗的:如果缓存导致问题,缓存测试应该失败,而不是您的外部类。

关于unit-testing - 什么时候不使用 mock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7846581/

相关文章:

java - firestore回调方法是否在单独的线程中运行?

php - 如何在 PHP 中分配特定大小的内存块?

java - JUnit 测试 SQL 查询

c# - 测试项目在它正在测试的项目中找不到对象

flutter - 集成测试中的ListView(Flutter)

algorithm - 用最少的矩形填充多边形

java - 在 junit 测试中加载 myclass-context.xml 失败

php - 如何使用 PHP SimpleTest 框架设置数据库测试

language-agnostic - 工厂和模式如何关联?

language-agnostic - 适用于小型个人项目的最佳可移植开发平台