Debería realizar una prueba unitaria con datos que no deberían pasarse en una función (entrada no válida)?

Estoy tratando de usar TDD para mi práctica de codificación. Me gustaría preguntar si realizo una prueba con datos que no deberían suceder en una función, PERO estos datos pueden dañar su programa.

Aquí es uno de un ejemplo fácil de ilustrar a lo que pregunto:

una función ROBOT que tiene un parámetro INT. En esta función, sé que el rango válido solo sería 0-100. Si se utiliza -1, 101, la función se interrumpirá.

function ROBOT (int num){
...
...
...
return result;
}

Así que decidí algunos casos de prueba automatizados para esta función ...

1. function ROBOT with input argument 0
2. function ROBOT with input argument 1
3. function ROBOT with input argument 10
4. function ROBOT with input argument 100

¿Pero debo escribir casos de prueba con el argumento de entrada -1 o 101 para esta función ROBOT SI protejo eso en mi otra función que llama a la función ROBOT ???

5. function ROBOT with input argument -1
6. function ROBOT with input argument 101

No sé si es necesario porque creo que es redundante probar -1 y 101. Y si realmente es necesario para cubrir todos los casos, tengo que escribir más código para proteger -1 y 101.

Entonces, en la práctica común de TDD, ¿también escribirás un caso de prueba en -1 y 10

Respuestas a la pregunta(7)

Su respuesta a la pregunta