Pau*_*kin 11 unit-testing constants dry
我通常会尽量避免重复并遵守DRY原则.但是,我想知道这样的情况:
public class Feature {
final static String FEATURE_LABEL = "blah";
public void doSomething() { ... }
...
}
public class FeatureTest {
...
@Test
public void doSomethingShouldMakeSomethingHappen() {
assertEquals(Feature.FEATURE_LABEL,
feature.getSomethingHappens().getLabel());
}
Run Code Online (Sandbox Code Playgroud)
如果要求标签是"blah"并且某人将FEATURE_LABEL更改为"bleh",则即使测试不再符合要求,测试也会通过.这是否是违反DRY的有效地方?
为了测试某些东西 - 任何东西 - 一个重要的考虑因素是你的测试条件与你正在测试的东西无关.否则,您的测试没有单一,可靠的含义; 每当被检查对象发生变化时,它们就会变成其他测试.
不是一件好事.
同样的想法适用于单元测试.在上面的上下文中,您正在测试的字符串应该完全独立于测试类中的内容.换句话说,是的,你可以而且应该违反DRY原则.
| 归档时间: |
|
| 查看次数: |
1023 次 |
| 最近记录: |