将linq.Xelement转换为XMLTextReader的流

时间:2010-11-16 20:30:47

标签: vb.net unit-testing mocking

我正在使用

在单元测试中生成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进行模拟,如果我应该用它来做什么。

2 个答案:

答案 0 :(得分:9)

而不是通过流强制XmlTextReader,如果您只是XmlReader,则可以使用XNode.CreateReader。这比保存到流更简单,除非您的API 强制使用流或XmlTextReader

答案 1 :(得分:0)

xmlFileXDocument,可以保存到MemoryStream,有关详细信息,请参阅以下SO问题:

然后,您可以让您的方法接受通用Stream,然后可以是MemoryStream(在单元测试中)或FileStream