テストで次のコードを実行すると、
Mock<XmlWriter> mockXmlWriter = new Mock<System.Xml.XmlWriter>();
Language language = Language.GetLangauge(langId);
language.WriteXml(mockXmlWriter.Object);
mockXmlWriter.Verify(writer => writer.WriteAttributeString("ID", language.LanguageID.ToString()));
Moqは当然のことながら次の例外をスローしますSystem.NotSupportedException : Invalid verify on a non-virtual (overridable in VB) member: writer => writer.WriteAttributeString("ID", .language.LanguageID.ToString())
。
愚かな抽象には、 :(XmlWriter
のような非抽象、非仮想メソッドがまだいくつかありますWriteAttributeString()
and Co.と同じように、XmlWriterBase
またはを探しましたが、何も見つかりませんでした:(System.Xml.Abstractions
HttpContext
これをどのように克服して、自分のWriteXml
メソッドが想定どおりに動作していることをテストできるようにしますか?