Como acertar a classe de Test com Junit utilizando Bubblesort

1 resposta
C

E ae pessoal, blz.

Caros, estou fazendo um trabalho tenebroso em java, estou aprendendo, e me deparei agora em testar as classes com JUnit
Só que tenho de testar um array e ordem crescente e descrecente, utilizando a classe Sort.

public class BubbleSortAscendingStrategy extends DCOOSortTestTemplate {

	@Override
	protected boolean compare(int a, int b) {

		return false;
	}


}
public interface DCOOSort {

	void sort();

	void initArray(int[]a);

	void print();
}
public class DCOOSortFactory {
	public DCOOSort getSorter(String s) {
		if("select".equals(s)){
			return new SelectionSortStrategy();
		}
		
		return null;
	}
}
public abstract class DCOOSortTemplate implements DCOOSort {

	protected int[] vet;

	public void initArray(int[] a) {
		vet = a;
	}

	public void print() {

		for (int i = 0; i < vet.length; i++) {
			System.out.printf("%5d");
		}
		System.out.println();
	}

	protected abstract void processArray();
	
	public void sort (){
		processArray();
		print();
	}
	

}
public abstract class DCOOSortTestTemplate extends DCOOSortTemplate {

	@Override
	protected void processArray() {

	}

	protected abstract boolean compare(int a, int b);

}
public class SelectionSortStrategy extends DCOOSortTemplate {

	@Override
	protected void processArray() {
		int menor, x;
		for (int i = 0; i < vet.length-1; i++) {
			menor = i;
			x = vet[i];
			for (int j=i+1; j <vet.length; j++ ){
				if(vet[j]<x){
					menor = j;
					x = vet[j];
				}
			}
			vet[menor] = vet[i];
			vet[i] = x;
	
		}
	}
		
	public void sort() {
		
	}
Bom aqui fiz uma classe de teste informando um array de entrada e o esperado.
public class DCOOSortTest {

	@Test
	public void testSelectSort() {
		int[] entrada = { 1,3,4,7 };
		int[] esperado = { 1, 3, 4, 7 };
		DCOOSort alg = new DCOOSortFactory().getSorter("select");
		alg.sort();
		
		assertArrayEquals(esperado,entrada);
		
	}

}

Até agora show, mas empaquei em como tratar uma classe Test utilizando o BubbleSortAscendingStrategy por exemplo.Ele me disse que teria de informar o array e ele testar o esperado em ordem crescente.Puts ai eu pirei na batatinha.

Alguém pode me orientar...sendo mais simples possível

Obrigado

1 Resposta

regis_hideki

No seu método de teste você nunca passa a entrada como parâmetro, como o objeto “alg” vai ordenar algo? De qualquer forma, acho que era pra passar no teste, apesar de ele ser inútil.

Criado 22 de maio de 2013
Ultima resposta 22 de mai. de 2013
Respostas 1
Participantes 2