public interface IDependancy { } public class SomeDependancy : IDependancy {} public class MockDependancy : IDependancy {} public class SomeClass { private IDependancy dependancy = null; public SomeClass() : this(new SomeDependancy()) { // Do some stuff } // for testing only private SomeClass(IDependancy dependancy) { this.dependancy = dependancy; } } public class TestSomeClass { public void Test() { Type t = Assembly.Load(assemblyFullName).GetType(typeName); ConstructorInfo ci = t.GetConstructor( BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[] { typeof(IDependancy) }, null); SomeClass c = (SomeClass)ci.Invoke(new object[] { new MockDependancy() }); // test } }
Wednesday, 23 December 2009
Coding a class so that a dependancy can be easily injected when the class is tested
This is one example of how Dependancy Injection can be used so a dependancy can be mocked whilst the class is tested
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment