【发布时间】:2014-03-04 08:09:43
【问题描述】:
我正在创建一个对象序列化单元测试,并希望将对象的 XML 内联到 c# 代码单元测试文件中。 我知道内联它的最简单方法是使用 @ 前缀作为字符串:
var xml = @"<Something>
<AnotherSomething/>
<AnotherSomething/>
</Something>";
我的问题是我的 XML 包含属性并且它非常大,为了内联它,我需要检查所有 XML 并为 XML 中的每个“””添加转义,这样做非常大XML 节点很难,维护也很困难 -
var xml = @"<Something Att=""s"" Att2=""gg"">
<AnotherSomething/>
<AnotherSomething/>
</Something>";
我不想将 XML 作为另一个文件并将其标记为部署项 -
[DeploymentItem("Something.xml")]
因为它需要单元测试从磁盘加载文件,这会使单元测试慢得多,我可能有很多这样的。
有没有其他方法可以在不修改的情况下将 XML 放入代码中?
【问题讨论】:
-
您可以尝试放入资源文件中,然后从测试程序集中加载该文件。它仍在流式传输它,但来自程序集内部,而不是来自磁盘。确保资源是嵌入式的,而不仅仅是磁盘上文件的链接
-
@leon 这是个好主意,如果可以的话,将其作为示例发布,或者您可以添加此链接 - adamprescott.net/2012/07/26/…,我会将其标记为正确答案
标签: c# xml unit-testing code-editor