public interface IMyConfig
{
string MyProperty { get; }
int MyIntProperty { get; }
}
public class MyConfig : IMyConfig
{
public string MyProperty
{
get { ...lazy load from the actual config... }
}
public int MyIntProperty
{
get { ... }
}
}
public class MyLibClass
{
private IMyConfig config;
public MyLibClass() : this(null) {}
public MyLibClass( IMyConfig config )
{
this.config = config ?? new MyConfig();
}
public void MyMethod()
{
string property = this.config.MyProperty;
...
}
}
测试
public void TestMethod()
{
IMyConfig config = MockRepository.GenerateMock<IMyConfig>();
config.Expect( c => c.MyProperty ).Return( "stringValue" );
var cls = new MyLib( config );
cls.MyMethod();
config.VerifyAllExpectations();
}