ShimXmlDocument.AllInstances.LoadString = (a,b)=>
{
a = xDoc;
b = path;
};
Это сработало бы, как вы ожидали, если бы в качестве параметра ref было передано «a». Это не так, и, следовательно, вы не можете изменить объект, на который он указывает, вне лямбда-функции, то есть в тестируемом методе.
Вы можете добиться желаемого, изменив лямбда, как показано ниже:
ShimXmlDocument.AllInstances.LoadString = (a,b)=>
{
a.LoadXml("<add name=\"console\" type=\"DefaultTraceLoader\" value=\"Error\"/>");
};