Creo que esta es una idea falsa de cualquier manera que se me ocurra.
El código de prueba que prueba el código de producción no es en absoluto similar. Lo demostraré en python:
def multiply(a, b):
"""Multiply ``a`` by ``b``"""
return a*b
Entonces una prueba simple sería:
def test_multiply():
assert multiply(4, 5) == 20
Ambas funciones tienen una definición similar, pero ambas hacen cosas muy diferentes. No hay código duplicado aquí. ;-)
También ocurre que las personas escriben pruebas duplicadas que esencialmente tienen una afirmación por función de prueba. Esto es una locura y he visto gente haciendo esto. Esta es una mala práctica.
def test_multiply_1_and_3():
"""Assert that a multiplication of 1 and 3 is 3."""
assert multiply(1, 3) == 3
def test_multiply_1_and_7():
"""Assert that a multiplication of 1 and 7 is 7."""
assert multiply(1, 7) == 7
def test_multiply_3_and_4():
"""Assert that a multiplication of 3 and 4 is 12."""
assert multiply(3, 4) == 12
Imagine hacer esto para más de 1000 líneas de código efectivas. En su lugar, realiza una prueba por "característica":
def test_multiply_positive():
"""Assert that positive numbers can be multiplied."""
assert multiply(1, 3) == 3
assert multiply(1, 7) == 7
assert multiply(3, 4) == 12
def test_multiply_negative():
"""Assert that negative numbers can be multiplied."""
assert multiply(1, -3) == -3
assert multiply(-1, -7) == 7
assert multiply(-3, 4) == -12
Ahora, cuando se agregan / eliminan funciones, solo tengo que considerar agregar / eliminar una función de prueba.
Es posible que haya notado que no he aplicado forbucles. Esto se debe a que repetir algunas cosas es bueno. Cuando hubiera aplicado bucles, el código sería mucho más corto. Pero cuando falla una aserción, podría ofuscar la salida que muestra un mensaje ambiguo. Si esto ocurre entonces sus pruebas serán menos útiles y que se necesita un depurador para inspeccionar donde las cosas van mal.