Skip to content

Instantly share code, notes, and snippets.

@up1
Last active September 10, 2015 04:02
Show Gist options
  • Save up1/84227f45f0c48c12acd1 to your computer and use it in GitHub Desktop.
Save up1/84227f45f0c48c12acd1 to your computer and use it in GitHub Desktop.
Demo Dependency Injection
public class Example {
private DatabaseThingie myDatabase;
public Example() {
myDatabase = new DatabaseThingie();
}
public void doStuff() {
myDatabase.GetData();
}
}
public class Example {
private DatabaseThingie myDatabase;
public Example() {
myDatabase = new DatabaseThingie();
}
public Example(DatabaseThingie useThisDatabaseInstead) {
myDatabase = useThisDatabaseInstead;
}
public void DoStuff() {
myDatabase.GetData();
}
}
public class ExampleTest {
TestDoStuff() {
MockDatabase mockDatabase = new MockDatabase();
// MockDatabase is a subclass of DatabaseThingie, so we can
// "inject" it here:
Example example = new Example(mockDatabase);
example.DoStuff();
mockDatabase.AssertGetDataWasCalled();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment