Jakub has been around software development for past 10 years, wearing multiple hats, getting hands dirty in multiple environments, securing both technical as well as the business side of the things. An engineer with a human friendly interface. Working with a wide set of languages / frameworks, lead delivery teams, liaising with customer, focused on research and development as well as on core product delivery, hidden deeply in lab. With Java being his primary tool for most of the time, he’s happy with falling back to different languages, stacks. Being classically trained (graduating Technical University), Jakub always considered programming as a tool to solve real-life problems. He always stayed closed to business side of the solution, still focusing on the technology. He combines daily job of a software engineer with lectures and technical trainings and regular commits to local Java User Group.
We, engineers, love green field projects: start with new, cutting edge technology, build a framework, research and discover all those fresh and sexy things out there. Unfortunately, quite often there is fun and there is business reality. There are things we would love to do and things we and up doing for living (yes - it’s generalization). Quite often we end up with a more or less legacy code, in an out dated environment cause ‘it always worked for us so don’t see any reason to change’. The daily routine is to fix bugs and add new features to an app no one really knows ‘because John who started it left the company 3 years ago’. With not much flexibility, it appears tests are becoming the area of biggest possible innovation. It’s tests were you are allowed to exploit new ideas, tools - to save yourself work, in general. This is a path I had to walk down at some point and I’d like to share some experience. I’ll be covering wide variety of tests: after starting with dead simple unit tests (for warm up) I’ll cover extensive mocking with Mockito as well as using Mockito for verification (of changes, proper merges of less obvious things). I’ll finish with bootstrapping an embedded container to simulate actual application server, how to mock EJB and how to simulate some non standard vendor extensions.