He escrito una biblioteca matemática de punto fijo, que viene en dos sabores: el sabor firmado y el no firmado.
Las pruebas en los dos sabores tienen muchas entradas en común. Por ejemplo, para la función avg :
// Signed tests inputs context("when one operand is zero and the other is not zero", function () { const testSets = [ [fp("-4"), fp("0")], [fp("0"), fp("-4")], [fp("0"), fp("4")], [fp("4"), fp("0")], ]; // ... }); // Unsigned tests inputs context("when one operand is zero and the other is not zero", function () { const testSets = [ [fp("0"), fp("4")], [fp("4"), fp("0")], ]; // ... }); Los valores en las matrices testSets están duplicados. Enlaces a GitHub:
La pregunta es, ¿cómo refactorizar mi base de código para que no me repita? ¿Existe una "práctica recomendada" para este escenario? Leí sobre pruebas de instantáneas , aunque eso no aborda las entradas de prueba. Dije que tal vez debería falsificar los datos. Pero no estoy seguro de que eso tenga sentido en mi caso, porque las entradas de mis funciones matemáticas están limitadas por un dominio.
Nota: Estoy ejecutando mis pruebas con Mocha .