jmockit & hamcrest

15

Click here to load reader

Upload: ptjug

Post on 17-May-2015

1.439 views

Category:

Technology


0 download

DESCRIPTION

Apresentação de Hugo Marcelino - 11º encontro PT.JUG.

TRANSCRIPT

Page 1: JMockit & Hamcrest

Ferramentas para testes

JMockit & Hamcrest

Wednesday, July 3, 13

Page 2: JMockit & Hamcrest

Porquê Mocks ?

Wednesday, July 3, 13

Page 3: JMockit & Hamcrest

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íficosem termos que estar preocupados com outras funcionalidades.

* Mais rápido escrever testes para legacy code.

Wednesday, July 3, 13

Page 4: JMockit & Hamcrest

Caso de uso

AplicaçãoServidorExterno

MocksRequest

MocksResponse

Wednesday, July 3, 13

Page 5: JMockit & Hamcrest

JMockit

Wednesday, July 3, 13

Page 6: JMockit & Hamcrest

JMockitJMockit é 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

Page 7: JMockit & Hamcrest

Método de Teste:@Testpublic void test_something(){ new Expectations(){{ // Expectativas }}

// code beeing executed

new Verifications(){{ // JUnit ou TestNG asserts }}}

Wednesday, July 3, 13

Page 8: JMockit & Hamcrest

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

Page 9: JMockit & Hamcrest

Expectation API new Expectations(){ MockedClass mock; { // Definição de expectativas mock.someMethod(“sameArg”); result = “someresult” ... } }

Wednesday, July 3, 13

Page 10: JMockit & Hamcrest

Verifications API

new Verifications(){{ // Definição de expectativas mock.someMethod(anyString); times = 1 ... }}

Wednesday, July 3, 13

Page 11: JMockit & Hamcrest

Hamcrest

Wednesday, July 3, 13

Page 12: JMockit & Hamcrest

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

Page 13: JMockit & Hamcrest

Hamcrestpublic 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

Page 14: JMockit & Hamcrest

Demo TIME

Wednesday, July 3, 13

Page 15: JMockit & Hamcrest

Thank you!

@: hugo_marcelinogit: hmarcelino

Wednesday, July 3, 13