Your SlideShare is downloading. ×
JMockit & Hamcrest
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

JMockit & Hamcrest

1,395
views

Published on

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

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

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,395
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Ferramentas para testes JMockit & Hamcrest Wednesday, July 3, 13
  • 2. Porquê Mocks ? Wednesday, July 3, 13
  • 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
  • 4. Caso de uso Aplicação Servidor Externo Mocks Request Mocks Response Wednesday, July 3, 13
  • 5. JMockit 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
  • 9. Expectation API new Expectations(){ MockedClass mock; { // Definição de expectativas mock.someMethod(“sameArg”); result = “someresult” ... } } Wednesday, July 3, 13
  • 10. Verifications API new Verifications(){{ // Definição de expectativas mock.someMethod(anyString); times = 1 ... }} Wednesday, July 3, 13
  • 11. Hamcrest 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
  • 14. Demo TIMEWednesday, July 3, 13
  • 15. Thank you! @: hugo_marcelino git: hmarcelino Wednesday, July 3, 13