Dúvida sobre jMock 2?

0 respostas
usphisics

Olá a todos estou iniciando no mundo do Mock…estou tentando entender o jMock…tenho um exemplo q foi feito para a versão 1 mas estou tentando adaptar e c isso entender melhor o código p a versão 2…Dêem uma olhada…

//Classe a ser testada:
public class ClassePeba {

public String getAlgo(int i, ClasseCriptografia classeCriptografa){

String palavra = blablabla;

palavra = classeCriptografa.criptogravaPalavra(palavra, i);

return palavra;

}

}

//Classe usada tb…
public class ClasseCriptografia {

public String criptogravaPalavra(String palavra, int i) {

if(i == 1){

palavra = palavra.replace(“a”, “@”);

palavra = palavra.replace(“b”, “!”);

palavra = palavra.replace(“l”, “?”);

}else{

palavra = palavra.replace(“a”, “*”);

palavra = palavra.replace(“b”, “$”);

palavra = palavra.replace(“l”, “%”);

}

return palavra;

}

}

Agora como quero testar a ClassePeba q depende de ClasseCriptografia vou usar o jMock p mockar essa última…então vamos lá…

Primeiro vou const uma interface p essa

//Interface

public interface ClasseCriptografiaInterface {

public abstract String criptogravaPalavra(String palavra, int i);

}
Bom e agora a classe de teste okusando o jMock

import org.jmock.integration.junit3.<em>;

import org.jmock.Mockery;

import static org.jmock.Expectations.</em>;

public class TestClassePeba extends MockObjectTestCase{

ClassePeba classePeba;

Mockery classeCriptografa;

ClasseCriptografiaInterface classeCriptografaMock;
public void setUp()

{

classePeba = new ClassePeba();

classeCriptografa = new Mockery();

classeCriptografaMock = classeCriptografa.mock(ClasseCriptografiaInterface.class);

}
public void testGetAlgo()

{

classeCriptografaMock.expects(one()).method(criptogravaPalavra).with(eq(blablabla), eq(1)).will(returnValue("!?@!?@!?@"));

assertEquals("!?@!?@!?@", classePeba.getAlgo(1, (ClasseCriptografiaInterface)classeCriptografaMock.proxy()));

classeCriptografaMock.expects(once()).method(criptogravaPalavra).with(eq(blablabla), eq(2)).will(returnValue("$%<em>$%</em>$%<em>"));

assertEquals("$%</em>$%<em>$%</em>", classePeba.getAlgo(2, (ClasseCriptografiaInterface)classeCriptografa.proxy()));

}

}

Como vcs vão ver tá misturado a syntax da versão 1 e da 2…isso pq não sei muito sobre elas e estou tentando aprender mas não estou conseguindo…
Se alguém pude me ajudar eu agradeço…
Até +

Criado 28 de janeiro de 2008
Respostas 0
Participantes 1