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)

  1. concretizar a classe de comparação a testar;
  2. 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;
  3. repetir 2. até se obter uma boa ideia do funcionamento dos testes.