【问题标题】:Is this possible to write good tests avoiding mocking and "expects" on internal methods?这是否可以编写好的测试来避免内部方法的嘲笑和“期望”?
【发布时间】:2017-02-24 09:18:00
【问题描述】:

这是否可以避免在 phpunit 中进行模拟?

我的概念是: - 编写单元测试来测试较小的部分 - 在进行集成/功能测试时,可以使用依赖注入注入一个空对象类(因此最好将所有内容都接口)。但集成测试可以与单元测试分开。

我不喜欢嘲笑的原因是我发现它在每次测试中都没有被充分利用,它完全不可读。我正在考虑分离单元测试和集成测试。

在大多数情况下,这是否可以替代模拟,或者模拟根本不可替代?最佳做法是什么?

【问题讨论】:

    标签: php unit-testing phpunit


    【解决方案1】:

    当然,您不必使用模拟。你需要fakes

    Fake 可避免为极具侵入性的合同过度指定测试,例如 调用顺序和精确参数;一个真正的实现是 对合同的变化更加稳健。

    这有助于专注于测试的本质(因为您不会在测试中放置长时间模拟的期望)。此外,完全可以替换模拟。

    考虑this article 中的示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-18
      • 2012-11-17
      • 2015-12-18
      • 2019-08-26
      • 2013-08-18
      • 2016-07-29
      相关资源
      最近更新 更多