Download - JMockit & Hamcrest
![Page 1: JMockit & Hamcrest](https://reader038.vdocuments.com.br/reader038/viewer/2022100600/555874cfd8b42a8d018b526b/html5/thumbnails/1.jpg)
Ferramentas para testes
JMockit & Hamcrest
Wednesday, July 3, 13
![Page 2: JMockit & Hamcrest](https://reader038.vdocuments.com.br/reader038/viewer/2022100600/555874cfd8b42a8d018b526b/html5/thumbnails/2.jpg)
Porquê Mocks ?
Wednesday, July 3, 13
![Page 3: JMockit & Hamcrest](https://reader038.vdocuments.com.br/reader038/viewer/2022100600/555874cfd8b42a8d018b526b/html5/thumbnails/3.jpg)
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](https://reader038.vdocuments.com.br/reader038/viewer/2022100600/555874cfd8b42a8d018b526b/html5/thumbnails/4.jpg)
Caso de uso
AplicaçãoServidorExterno
MocksRequest
MocksResponse
Wednesday, July 3, 13
![Page 5: JMockit & Hamcrest](https://reader038.vdocuments.com.br/reader038/viewer/2022100600/555874cfd8b42a8d018b526b/html5/thumbnails/5.jpg)
JMockit
Wednesday, July 3, 13
![Page 6: JMockit & Hamcrest](https://reader038.vdocuments.com.br/reader038/viewer/2022100600/555874cfd8b42a8d018b526b/html5/thumbnails/6.jpg)
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](https://reader038.vdocuments.com.br/reader038/viewer/2022100600/555874cfd8b42a8d018b526b/html5/thumbnails/7.jpg)
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](https://reader038.vdocuments.com.br/reader038/viewer/2022100600/555874cfd8b42a8d018b526b/html5/thumbnails/8.jpg)
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](https://reader038.vdocuments.com.br/reader038/viewer/2022100600/555874cfd8b42a8d018b526b/html5/thumbnails/9.jpg)
Expectation API new Expectations(){ MockedClass mock; { // Definição de expectativas mock.someMethod(“sameArg”); result = “someresult” ... } }
Wednesday, July 3, 13
![Page 10: JMockit & Hamcrest](https://reader038.vdocuments.com.br/reader038/viewer/2022100600/555874cfd8b42a8d018b526b/html5/thumbnails/10.jpg)
Verifications API
new Verifications(){{ // Definição de expectativas mock.someMethod(anyString); times = 1 ... }}
Wednesday, July 3, 13
![Page 11: JMockit & Hamcrest](https://reader038.vdocuments.com.br/reader038/viewer/2022100600/555874cfd8b42a8d018b526b/html5/thumbnails/11.jpg)
Hamcrest
Wednesday, July 3, 13
![Page 12: JMockit & Hamcrest](https://reader038.vdocuments.com.br/reader038/viewer/2022100600/555874cfd8b42a8d018b526b/html5/thumbnails/12.jpg)
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](https://reader038.vdocuments.com.br/reader038/viewer/2022100600/555874cfd8b42a8d018b526b/html5/thumbnails/13.jpg)
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](https://reader038.vdocuments.com.br/reader038/viewer/2022100600/555874cfd8b42a8d018b526b/html5/thumbnails/14.jpg)
Demo TIME
Wednesday, July 3, 13
![Page 15: JMockit & Hamcrest](https://reader038.vdocuments.com.br/reader038/viewer/2022100600/555874cfd8b42a8d018b526b/html5/thumbnails/15.jpg)
Thank you!
@: hugo_marcelinogit: hmarcelino
Wednesday, July 3, 13