Welcome!

Making The Insights For Log Data Simply Accessible

Trevor Parsons

Subscribe to Trevor Parsons: eMailAlertsEmail Alerts
Get Trevor Parsons via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Blog Post

Smart Integration Testing with Dropwizard, Flyway and Retrofit

Verification typically entails testing the behavior of the new feature

It's widely understood that increasing the scope and complexity of a piece of software almost always dramatically increases the effort required to verify it. Verification typically entails testing the behavior of the new feature, plus ensuring no existing functionality has been adversely affected.Dropwizard

Because this kind of testing can quickly become painful for even the simplest of components, and because atLogentries we continuously deploy large components of our service, anytime we invest in automation rapidly speeds up release cycles and tames the complexity. I'd like to talk briefly about one combination of tools we've been trying out recently:

  • Dropwizard- a framework for building ops-friendly microservices
  • Flyway- a tool for managing database schema changes
  • Retrofit- a slick REST client for consuming APIs

Dropwizard does a great job of tying together several top-notch libraries commonly used for developing RESTful web services on the JVM. More importantly, it also packages them up so it's much easier to do end-to-end testing. Rather than repeating the excellent guide, let's assume that we have a "Hello, world" service up & running and ready to test (yes, writing tests retrospectively often isn't advisable, but for the sake of brevity we're picking up where the guide left off!). We'll also assume that you have something to persist in a database, so we'll add one extra method to the HelloWorldResource class, which will return a HTTP 201: CREATED when a request is successful:

More Stories By Trevor Parsons

Trevor Parsons is Chief Scientist and Co-founder of Logentries. Trevor has over 10 years experience in enterprise software and, in particular, has specialized in developing enterprise monitoring and performance tools for distributed systems. He is also a research fellow at the Performance Engineering Lab Research Group and was formerly a Scientist at the IBM Center for Advanced Studies. Trevor holds a PhD from University College Dublin, Ireland.