Normalmente trato de evitar la duplicación y cumplir con el principio DRY. Sin embargo, estoy pensando en un caso como este:DRY entre producción y Constantes de código de prueba
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());
}
Si el requisito es que la etiqueta sea el "bla" y alguien cambia FEATURE_LABEL a "bleh", la prueba pasará a pesar de que ya no cumple el requerimiento. ¿Es este un lugar válido para violar DRY?
Acepto que si el requisito cambia, la prueba debería cambiar. Me preocupa que la constante se pueda usar en más de un lugar y el requisito puede cambiar para un lugar, pero seguir siendo el mismo para el otro lugar. –