Parece que tiene reglas comerciales, y luego tiene clientes de esas reglas comerciales. Si esos dos pueden variar de forma independiente, sería aconsejable diseñar su API en consecuencia.
Tal como se presentó, su pregunta parece que se puede resolver con el uso adecuado del patrón de Estrategia.La estrategia representa las reglas de su negocio, por lo que puede probarlas en un contexto puro sin preocuparse por el cliente.
Cuando la regla comercial cambia, puede tener más sentido simplemente dejar la antigua Estrategia tal como está (en caso de que la necesite más adelante), y escribir (y probar la unidad) una Estrategia completamente nueva que represente la nueva empresa regla.
Cuando haya terminado completamente con la nueva Estrategia, puede reemplazar la Estrategia en el cliente.
Al probar la unidad del cliente, debe hacerlo contra una estrategia de prueba doble (como un simulacro) para verificar que el cliente interactúa correctamente con la estrategia sin depender de ninguna implementación de estrategia en particular.
De esta forma, obtiene una separación clara de las preocupaciones y mantiene las pruebas de la unidad mantenibles. También obedeces el principio abierto/cerrado.
Cuando cambia las reglas, cambia los resultados esperados. Eso significa que algunas pruebas unitarias positivas que solían aprobar ahora fallan, y algunas pruebas negativas que solían pasar (al detectar un error) ahora pueden fallar (aunque esto suele ser menos común). Las pruebas unitarias solo pueden validar las reglas actuales; no pueden validar todos los cambios en las reglas antes de que cambien las reglas. Cuando las reglas cambian, las pruebas de la unidad también pueden tener que hacerlo. –