Skip to content

Instantly share code, notes, and snippets.

@dadarek
Created August 20, 2013 16:16
Show Gist options
  • Save dadarek/6283652 to your computer and use it in GitHub Desktop.
Save dadarek/6283652 to your computer and use it in GitHub Desktop.
How to corner dependencies that are hard to mock or extract interface.
class SomeClass{
private BigHorrificMonsterClass myBaby = new BigHorrificMonsterClass();
public int DoSomething( int value ){
int cradled = myBaby.cradle( value );
return value + cradled;
}
}
class SomeClass{
private BigHorrificMonsterClass myBaby = new BigHorrificMonsterClass();
public int DoSomething( int value ){
int cradled = cradle( value );
return value + cradled;
}
protected virtual int cradle( int value ){
return myBaby.cradle( value );
}
}
class SomeClassSub : SomeClass {
public int cradleReturnValue;
protected virtual int cradle( int value ){
return cradleReturnValue;
}
}
class SomeClassTest{
[TestMethod]
public void ItAddsValueToCradled(){
SomeClassSub someClass = new SomeClassSub();
someClass.cradleReturnValue = 5;
int result = someClass.DoSomething( 8 );
Assert.AreEqual( 13, result );
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment