在测试方法中使用相同常数值的优缺点是什么?

Ano*_*ous 1 tdd

我对TDD很新.我正在阅读TDD By Example并且它说"永远不要尝试使用相同的常量来表示不止一件事"并且它显示了一个Plus()方法示例.

在我看来,Plus(1,1)使用相同的常数值和Plus(1,2)之间没有区别.我想知道在测试方法中使用相同的常量值有什么优缺点?

Lie*_*ers 5

我认为你误解了这个说法.作者(imho)试图表达的是,以下代码是灾难的秘诀.

const SomeRandomValue = 32;
...
// Plus testcase
Plus(SomeRandomValue, SomeRandomValue)
...
// Divide testcase
Divide(SomeRandomValue, SomeRandomValue)
Run Code Online (Sandbox Code Playgroud)

您有两个测试用例重用无描述性常量.有没有办法知道,通过改变SomeRandomValue0你的测试套件将会失败.

更好的命名就像是

const AdditionValue = 32;
const DivisorValue = 32;
...
// Plus testcase
Plus(AdditionValue, AdditionValue)
...
// Divide testcase
Divide(DivisorValue, DivisorValue)
Run Code Online (Sandbox Code Playgroud)

它应该是显而易见的,以什么常数用于for.You不应该创建测试用例时,对代码重用的想法挂断了电话.

换句话说:

我没有看到DivisorValue在多个测试用例中重用常量没有任何问题>但是,在代码重用的名义下,试图将一个值变成一个无描述性的变量肯定是错误的.