gpt4 book ai didi

.net - 如何对读取 xml 文件的类进行单元测试?

转载 作者:行者123 更新时间:2023-12-04 14:06:56 26 4
gpt4 key购买 nike

我需要为读取 xml 文件并解析其内容的类编写单元测试。
如何模拟文件读取?因为测试的所有内容都应该针对读取文件。

我将 nmock2 与 nUnit 一起使用。

谢谢

最佳答案

正如 rwwilden 所建议的那样,如果您使用基于流的 API 而不是基于文件名的 API,生活会容易得多。 IMO,在这里使用模拟不太合适;你不是在做“协议(protocol)测试”——你只是想要一个数据源。

您还可以提供一个重载,这是一种简单的实用方法:

 public Result ParseXml(string file)
{
using (Stream stream = File.OpenRead(file))
{
return ParseXml(stream);
}
}

然后,您可以合理地安全地不测试该方法 - 毕竟它没有重要的逻辑。

现在您可以通过在代码中使用硬编码字符串来测试基于流的 API,然后调用 Encoding.UTF8.GetBytes(xml)并建立一个 MemoryStream围绕生成的字节数组......但我通常更喜欢在我的测试项目中使用单独的数据文件。将内容类型设置为“嵌入式资源”,然后使用 Assembly.GetManifestResourceStream 获取测试文件的流。

如果这确实是一个普通的 XML 文件,您真的想自己进行解析吗?你有什么理由不想把它留给框架,并用 DOM API、LINQ to XML 或 XmlReader 来表达你的 API ?

关于.net - 如何对读取 xml 文件的类进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3031409/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com