I know this is an old question but I thought I would add in my solution as its simple and could help someone.
The settings class created is a partial class, we can leverage this to create our own implementation of Default.
Create a new file in the Properties folder
internal partial class Settings : ISettings
{
private static ISettings _setInstance;
internal static ISettings Get
{
get
{
return _setInstance = _setInstance ?? Default;
}
set { _setInstance = value; }
}
}
Then when we use it elsewhere in the application we can call Settings.Get..
If you want to set the values from test, create a class that inherits from ISettings and set the new implementation.
If your tests are found in a separate project you will have to add another class to expose the setter to public.
We cant change the settings file to public as this would just be overwritten the next time we change or add a value.