@gil_zilberfeld@gil_zilberfeld
Dependency Injection
and what it means for
testers
@gil_zilberfeld
Hello!
I AM GIL ZILBERFELD
www.gilzilberfeld.com
www.everydayunittesting.com
@gil_zilberfeld
@gil_zilberfeld
Dependency Injection
Is a technique whereby one
object supplies the
dependencies of another
object.
@gil_zilberfeld
@gil_zilberfeld
Simple Example
Instead of:
Pass the dependency:
@gil_zilberfeld
Why DI?
◉ Separate creation from usage
◉ Increase decoupling
◉ Ability to inject similar objects
◉ Increase testability
@gil_zilberfeld
@gil_zilberfeld
What is Spring?
◉ Originally a dependency injection framework
◉ Now a very useful and complex runtime for Java
@gil_zilberfeld
Testing with Spring
◉ Spring injection can easily swap dependencies:
 3rd party components
 External services
 Redirection
 Mocks
@gil_zilberfeld
@gil_zilberfeld
Spring Test using Injection
@gil_zilberfeld
Spring Test using Injection
@gil_zilberfeld
@gil_zilberfeld
MockBean injection
@gil_zilberfeld
@gil_zilberfeld
Mocking A Web Server
@gil_zilberfeld
@gil_zilberfeld
Mocking APIs
@gil_zilberfeld
@gil_zilberfeld
@gil_zilberfeld
@gil_zilberfeld
@gil_zilberfeld
Thanks!
ANY QUESTIONS?
You can find me at:
@gil_zilberfeld
Gil.Zilberfeld@gmail.com
http://www.GilZilberfeld.com
http://www.EverydayUnitTesting.com

Dependency injection and Why It Matters to Testers