3. Porquê mocks ?
* Queremos ignorar dependências de classes
relacionadas quando não são necessárias para
os nossos testes.
* Porque queremos testar código específico
sem termos que estar preocupados com outras
funcionalidades.
* Mais rápido escrever testes para legacy
code.
Wednesday, July 3, 13
6. JMockit
JMockit é uma ferramenta para criar mocks,
que para além de fornecer as mesmas
funcionalidades que outras ferramentas,
permite fazer ainda:
* Mocks de classes final
* Mocks de métodos estáticos.
https://code.google.com/p/jmockit/
* Mocks de construtores
Wednesday, July 3, 13
7. Método de Teste:
@Test
public void test_something(){
new Expectations(){{
// Expectativas
}}
// code beeing executed
new Verifications(){{
// JUnit ou TestNG asserts
}}
}
Wednesday, July 3, 13
8. Expectation API
Verification API
* Um forma de podermos definir o
comportamento que pretendemos que os nossos
objectos mock tenham
* Forma de podermos verificar as chamadas
feitas aos nossos mock objects.
Wednesday, July 3, 13
12. Hamcrest
* Pretende dar algum significado ao que
estamos a testar simplificando os nossos
testes por meio de matchers.
Configuration config = new Port80Configuration();
Server server = new server();
server.setConfiguration(config);
server.start();
assertThat(server, isListeningOnPort(80));
https://code.google.com/p/hamcrest/
Wednesday, July 3, 13
13. Hamcrest
public Matcher<? super Server> isListeningOnPort(false Integer port){
return new TypeSafeMatcher<Server>() {
@Override
protected boolean matchesSafely(Server server) {
// testar condição
return false;
}
@Override
public void describeTo(Description description) {
description.appendText(....); // Escreve em caso de falha a mensagem de erro
}
}
}
Wednesday, July 3, 13