【问题标题】:Should unit tests cover constants changing?单元测试应该涵盖常量变化吗?
【发布时间】:2018-12-19 17:34:08
【问题描述】:

我正在为我的演示者创建一个单元测试。我有 2 个用于范围的常量,将来肯定可以更改为来自服务器的请求。因此,我编写了所有代码,使其适用于该常量的任何值。

现在我可以更改此常量以进行单元测试。我将添加一些返回这个常量范围的函数和模拟这个函数。但我应该这样做。

一方面,更改测试常量让我相信我的代码可以在任何值下工作。但另一方面,单元测试不会涵盖常量没有改变。

也就是说,单元测试应该覆盖常量值吗?

【问题讨论】:

    标签: android unit-testing mvp android-mvp test-coverage


    【解决方案1】:

    当然,您现在可以进行该测试,但我建议遵循 YAGNI 原则:现在不要测试,您可能永远不会做出改变。但是,一旦将这些常量转换为变量,就必须扩展测试套件。很有可能您的测试套件无论如何都需要维护,但要确保您不会忘记它,请在常量中添加注释或使用其他形式的提醒...

    【讨论】:

      【解决方案2】:

      实际答案将取决于具体实施和意见,并取决于许多因素。

      但是,我使用的一般规则是 - 如果它是一个真正的“参数”(改变值而不是常数),则应该这样对待和测试。也就是将值作为构造函数或方法参数传入。在这种情况下无需嘲笑。

      否则,它只是一个常数,您的单元测试应该只测试每个方法/单元/等的输入和输出,而不管所述常数值的“实现细节”如何。

      您可以自行决定是否应该将这个“常量”视为这样,还是将其视为参数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多