, " " . , :
public interface IConfig
{
string GetSettingValue(string settingName);
}
"" :
public sealed class Config : IConfig
{
public string GetSettingValue(string settingName)
{
}
}
, , ( ):
public void DoStuff(IConfig configuration)
{
string someSetting = configuration.GetSettingValue("ThatThingINeed");
}
, DoStuff Config.
, (Moq, JustMock, RhinoMocks ..), IConfig, .config, ( ).
public class ConfigMock : IConfig
{
private Dictionary<string, string> settings;
public void SetSettingValue(string settingName, string value)
{
settings[settingName] = value;
}
public string GetSettingValue(string settingName)
{
return settings[settingName];
}
}
[Test]
public void SomeExampleTest()
{
var config = new ConfigMock();
config.SetSettingValue("MySetting", "SomeValue");
var underTest = new MyClass();
underTest.DoStuff(config);
}