Como fazer uma classe de teste

1 resposta
pauloadriano
Tenho que fazer a classe de teste da classe que estou passando abaixo, mais nao sei como fazer gostaria da ajuda de voces para conseguir isso.
package br.com.ffm.info.map.game;

import java.util.ArrayList;

import br.com.ffm.info.map.exception.GameExceptionTabuleiro;
import br.com.ffm.info.map.factory.BeatleConcret;


/**
 *Entidade Game que controla amovimentação dos besouros, contem as regras do jogo, inicia o jogo e inicia a construção do tabuleiro
 */
public class Game {
 
 
	private Table table = null;
	
	//private static Game gameUnicaInstancia = null;
	 
	/**
	 *Metodo que inicia o game
	 */
	public Game(){
		
	}
	 
	/**
	 *Metodo que cria os tabuleiros
	 *
	 */
	public void startTable() {
		table  = new Table();
	}
	 
	/**
	 *Método responsavel por mover os Beatle
	 */
	public void gameMove() {
		ArrayList<Celula> celulas = table.getCelulas();
		for (Celula celula:celulas){
			if ((celula.estaVazia()==false)){
				boolean aloca = false;
				while (!aloca){ 
					Celula celulaVazia = table.celulaVazia(1+(int)(Math.random() * 8),1+(int)(Math.random() * 8));
					if (celulaVazia.estaVazia()){
						aloca = true;
						celulaVazia.alocaBesouroCelula(celula.getBeatleConcret());
						celula.setBesouroDestroy();
						System.out.println("Besouro foi movido para "+celulaVazia.getPosicaoX()+","+celulaVazia.getPosicaoY());
					}
				}	
			}
		}
	}
	 
	public void gameController() throws GameExceptionTabuleiro {
	  //  this.startTable();
		while(table.quantidadeBesourosGame()>1){
			this.gameMove();
			this.gameExecuteActionBeatle();
			this.destroyBeatle();
		}
	}
	 
	public void gameExecuteActionBeatle(){
		ArrayList<Celula> celulas = table.getCelulas();
		for (Celula celula:celulas){
			 if(celula.estaVazia()==false){
				 BeatleConcret besouro = celula.getBeatleConcret();
				 besouro.executeAction(this, celula);
			 }
		}
	}

	/**
	 * Pega os vizinhos passando as coordenadas do besouro
	 * @param x
	 * @param y
	 * @return
	 */
	public ArrayList <BeatleConcret> getVizinhos(int x, int y) {
		ArrayList<Celula> celulas = table.getCelulas();
		ArrayList<BeatleConcret> besouros = new ArrayList<BeatleConcret>();
		for (Celula celula:celulas){
			if ((celula.getPosicaoX()-x == 1)&&(celula.getPosicaoY()-y == 1)){
				if (celula.estaVazia() == false){
					besouros.add(celula.getBeatleConcret());
				}
			}
		}
		return besouros;
	}
	 
	/**
	 * adiciona o besouro no tabuleiro
	 * @param besouro
	 */
	public void addBeatleGame(BeatleConcret besouro) {
		table.addBesouroTabuleiro(besouro);
	}
	 
	/**
	 * Tira um besouro do jogo;
	 */
	public void destroyBeatle() {
		ArrayList<Celula> celulas = table.getCelulas();
		for(Celula celula:celulas){
			if(celula.estaVazia() == false){
			   BeatleConcret besouro = celula.getBeatleConcret();
			   if(besouro.getLife()<0){
				   celula.setBesouroDestroy();
			   }
			}
		}
	}
	 
}

agradeço a ajuda de todos,

1 Resposta

Rodrigo_Vieira_Pinto

Primeiramente, procure pensar que comportamento a classe deve ter.

Exemplo: se eu tenho uma classe que executa leitura de uma tabela do banco de dados, eu devo verificar se a mesma está lendo os dados contidos no banco corretamente, se a mesma não lê dados que não existem, se ela retorna a quantidade de registros que eu quero, etc.

Não esqueça também de um framework de testes unitários. o [google]JUnit[/google] pode te ajudar bastante.

Criado 23 de novembro de 2007
Ultima resposta 23 de nov. de 2007
Respostas 1
Participantes 2