常量是美丽的人-它们可以在一个独特的地方保存一个在代码中无处不在的值。更改该值只需要一次简单的修改。
生活是酷的。
好吧,这就是承诺。现实有时是不同的:
-
你改变了
LogCompleteFileName
常量值来自
L:\LOGS\MyApp.log
到
\\Traces\App208.txt
你会得到两个文件:
\\traces\App208.txt
对于痕迹和
\\traces\App208.txt.log
为了原木…
-
你改变
TransactionTimeout
从2到4分钟,2分钟后仍会出现超时(在花了一天时间后,您发现还必须更改DBMS的超时和事务管理器的超时…)。
-
你取代
SleepTimeInMinutes
从
1
到
10
你看不到任何变化(大约一小时后,你会发现常量的名字有误导性:粒度不是分钟而是毫秒…)。
-
更微妙的是:你改变了
CompanyName
从,说
Yahoo
到
Microsoft
但是自动邮件警报仍然发送到
alert@yahoo.com
…
创建常量是一个契约。你在告诉你的读者,每当他们改变价值时,它仍然会以他们认为应该的方式运作。
没什么。
当然,你需要测试你是否误导了你的读者。你必须确保默示合同是正确的。
你如何通过TDD实现这一点?我只是被它困住了。唯一可以测试常量变化的方法是!!)值是使该常量成为应用程序设置…我应该得出结论吗
const
当我认为值可以并且将要改变时,应该避免使用关键字?
如何使用TDD测试(所谓的)常量?
非常感谢:)