我正在使用
在单元测试中生成XML文件Public Sub rssParserTest
Dim Const rssUri as String = "rssTestFile.xml"
Dim xmlFile = <rss version="2.0">
...
</rss>
xmlFile.save(rssUri)
rssParser(rssUri)
End Sub
并使用XMLTextReader消耗uri
Public Sub rssParser(ByVal rssUri as string)
Dim rssXml = New XmlTextReader(rssUri)
rssXml.read
...
End Sub
我想删除对物理文件的单元测试依赖项并使用流来代替,但到目前为止,我的努力已经化为乌有。 (这是最佳做法吗?)
我正在使用NMock2进行模拟,如果我应该用它来做什么。
答案 0 :(得分:9)
而不是通过流强制XmlTextReader
,如果您只是XmlReader
,则可以使用XNode.CreateReader
。这比保存到流更简单,除非您的API 强制使用流或XmlTextReader
。
答案 1 :(得分:0)
xmlFile
是XDocument
,可以保存到MemoryStream
,有关详细信息,请参阅以下SO问题:
然后,您可以让您的方法接受通用Stream
,然后可以是MemoryStream
(在单元测试中)或FileStream
。