Devo testar a unidade com dados que não devem ser aprovados em uma função (entrada inválida)?

Estou tentando usar o TDD para minha prática de codificação. Gostaria de perguntar se devo testar com dados que não devem ocorrer em uma função, mas esses dados podem possivelmente interromper o seu program

Aqui é um exemplo fácil de ilustrar o que eu pergunto:

uma função ROBOT que possui um parâmetro INT. Nesta função, eu sei que o intervalo válido seria apenas de 0 a 100. Se -1, 101 for usado, a função será interrompid

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

Então eu decidi alguns casos de teste automatizados para esta função ...

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

Mas devo escrever casos de teste com o argumento de entrada -1 ou 101 para esta função ROBOT, se eu guardasse isso na minha outra função que chame a função ROBOT ???

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

Não sei se é necessário, porque acho que é redundância testar -1 e 101. E se for realmente necessário cobrir todos os casos, tenho que escrever mais código para proteger -1 e 101.

Na prática comum do TDD, você escreverá casos de teste em -1 e 101 também ???

questionAnswers(7)

yourAnswerToTheQuestion