estaba probando una clase String multiplicador con un método multiply()
que tiene 2 números como entradas (como String
) y devuelve el número del resultado (como String
)básico jUnit Preguntas
public String multiply(String num1, String num2);
he hecho la puesta en práctica y ha creado una clase de prueba con los casos de prueba siguientes que implican el parámetro de cadena de entrada como
- números válidos
- caracteres
- símbolo especial
- cadena vacía
- valor nulo
- número negativo
- flotador
- límite valora
- números que son válidos, pero su producto está fuera de rango
- números will + firman (+23)
Ahora mis preguntas son las siguientes:
me gustaría saber si "todos y cada uno" assertEquals() debe estar en su propio método de prueba? O bien, ¿puedo agrupar casos de prueba similares como testInvalidArguments() para que contenga todos los argumentos que implican caracteres no válidos ya que TODOS arrojan la misma NumberFormatException?
Si prueba un valor de entrada como el carácter ("a"), ¿necesito incluir casos de prueba para TODOS los escenarios? "a" como primer argumento "a" como segundo argumento "a" y "b", como los 2 argumentos
Según mi entendimiento, el beneficio de estas pruebas unitarias es averiguar los casos donde la entrada de un usuario puede fallar y dar como resultado una excepción. Y, luego, podemos darle al usuario un mensaje significativo (pidiéndole que proporcione una entrada válida) en lugar de una excepción. ¿Es eso correcto? Y, ¿es el único beneficio?
¿Son suficientes los 11 casos de prueba mencionados anteriormente? ¿Me he perdido algo? ¿He exagerado? ¿Cuándo es suficiente?
Siguiendo con el punto anterior, ¿he probado con éxito el método de multiplicación()?
@Bill - esto es una multiplicación. La división por cero no debería ser relevante a menos que la implementación esté haciendo algo extraño. –
@Stephen C: Ah, claro. Me desorienté un poco allí. Gracias, y he editado mi respuesta. –