Considere a classe Fan que representa um ventilador que produz um fluxo de ar quente ou frio e que pode ser rápido ou lento em termos de velocidade.

  public class Fan {
public Fan() { ... }
public void turnOn() { ... }
public void turnOff() { ... }
public void cool() { ... }
public void heat() { ... }
public void setFastSpeed() { ... }
public void setSlowSpeed() { ... }
}


Esta classe tem o seguinte funcionamento: 

  • Quando é criado um ventilador este encontra-se desligado e portanto não aquece nem arrefece o ar.

  • Para aquecer ou arrefecer primeiro é necessário ligar o ventilador (responsabilidade do método turnOn), ficando o ventilador a aquecer em velocidade lenta.

  • Quando o ventilador está a aquecer (arrefecer) é possível passar a arrefecer (aquecer) invocando o método cool (heat).

  • Pode-se sempre alterar a velocidade de funcionamento de um ventilador ligado: o método setFastSpeed passa de velocidade lenta para rápida enquanto que o método setSlowSpeed faz o oposto.
  • É sempre possível desligar (via método turnOff) um ventilador ligado.
Aplicando o padrão de testes mais apropriado, e descrevendo os vários passos da sua aplicação, desenhe os casos de teste que permitem verificar o comportamento desta classe.