У меня есть код ниже, который я тестирую.Как прошить XmlAttribute с помощью Microsoft Fakes в VS 2013
public Loader(XmlAttributeCollection attributes)
{
if (attributes == (XmlAttributeCollection)null)
throw new ArgumentNullException("attributes");
foreach (XmlAttribute attribute in attributes)
{
if (attribute.Name.Equals("name", StringComparison.OrdinalIgnoreCase))
{
name = attribute.Value;
}
else if (attribute.Name.Equals("type", StringComparison.OrdinalIgnoreCase))
{
loaderType = attribute.Value;
}
else
{
loaderAttributes.Add(attribute.Name, attribute.Value);
}
}
}
Это возможно Призонная шайба атрибут/attributecollection, так что я могу вернуться в зависимости от того, атрибут объекта я хочу вернуться?
Например, я хочу вернуть два объекта xmlattribute с именем атрибута «имя», а другой - «тип», а также их соответствующие значения.
Что я имел в виду, это что-то вроде ниже инструкции shim, где вместо возврата null можно вернуть объект xmlattribute с именем и значением?
ShimXmlAttributeCollection.AllInstances.ItemOfGetInt32 = (x, y) =>
{
return null;
};
Вот образец xml, который у меня есть.
<add name=\"console\" type=\"DefaultTraceLoader\" value=\"Error\"/>
Вам нужно будет подделать метод 'GetEnumerator()'. У меня нет подделок на этом ПК, поэтому я не могу показать вам, как .... но просто возвращать 'новый XmlAttribute [] {ваши элементы} .GetEnumerator()' должно быть достаточно. – xanatos
Это хорошее предложение. Но метод GetEnumerator() недоступен в StubXmlAttributeCollection или ShimXmlAttributeCollection. – krrishna
@krishna Потому что это определено в 'XmlNamedNodeMap' ... Попробуйте искать в' StubXmlNamedMap' – xanatos