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() {
}
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