Exercício
Pretende-se testar o correcto funcionamente de uma classe que representa uma operação de comparação sobre dois inteiros (representados por instâncias da classe java.lang.Integer).
A classe da operação matemática a testar depende do turno da aula prática:
- 2ª feira: Different
- 3ª feira: GreaterThanComparator
- 4ª feira: Lesser ThanComparator (manhã); LesserOrEqualThanComparator (tarde)
- 5ª feira: GreaterOrEqualThanComparator
- 6ª feira: EqualComparator
Nenhuma destas classes define atributos. Cada uma possui apenas o construtor automático e define o método público e não estático compare com a seguinte assinatura:
public boolean compare(Integer n1, Integer n2) throws Exception
Este método realiza a funcionalidade associada ao nome da classe correspondente. Por exemplo, na classe
GreaterThanComparator, este método deve devolver
true caso
n1 seja maior que
n2 e
false em caso contrário. Para qualquer das classes, se algum dos argumentos do método
compare for
null, então deve ser lançada uma excepção.
O teste ou testes realizados devem ser especificados numa única classe de teste, chamada, respectivamente,
GreaterThanComparator
Test ,
Lesser
ThanComparatorTest , etc. Os testes devem testar exaustivamente a funcionalidade da classe correspondente.
O método de execução dos testes é semelhante ao praticado na
aula prática 5 e aos que foram usados para o caso do exemplo
arabiannights.
Sugestão: (caso pretenda verificar o correcto funcionamento da sua classe de teste)
- concretizar a classe de comparação a testar;
- introduzir várias situações de erro nesta classe, uma de cada vez, e verificar que a classe de testes correspondente detecta cada uma dessas situações;
- repetir 2. até se obter uma boa ideia do funcionamento dos testes.