我正在为演示者创建一个单元测试。我有一个范围的2个常量,以后肯定可以更改为来自服务器的请求。因此,我编写了所有代码,使其可以与此常量的任何值一起使用。
现在我可以更改此常数以进行单元测试。我将添加一些函数,并返回此常量范围并模拟此函数。但我应该这样做。
一方面,更改测试常量使我确信我的代码可以使用任何值。但是另一方面,单元测试不会涵盖常量未更改的情况。
换句话说,单元测试应该覆盖常数值吗?
答案 0 :(得分:1)
当然可以立即进行测试,但是我建议您遵循YAGNI原则:现在不进行测试,您可能永远也不会做出更改。但是,一旦将这些常量转换为变量,就必须扩展测试套件。可能您的测试套件仍然需要维护,但为确保您不会忘记它,请在常量中添加注释或使用其他形式的提醒...
答案 1 :(得分:0)
实际答案将取决于具体的实施和意见,并取决于许多因素。
但是,我使用的一般规则是-如果它是一个真实的“参数”(改变值而不是常数),则应这样对待和测试。也就是将值作为构造函数或方法参数传入。在这种情况下,无需模拟。
否则,它只是一个常数,您的单元测试应仅测试每种方法/单元/等的输入和输出,而不管所述常数的值的“实现细节”如何。
由您决定是否应将此“常量”本身或作为参数来对待。