【发布时间】:2018-07-10 16:42:54
【问题描述】:
我有下一个函数,它根据文档中的数据创建一个列表。
我需要进行一些单元测试,但不知道如何为这个特定功能实际执行该操作。我到处阅读,但仍然没有运气。
public List<Info> getInfo()
{
XDocument doc = loadDocument();
var variable = (from elem in doc.Descendants("Information").Elements()
select new Info
{
Include = elem.Element("Include") != null && (elem.Element("Include").Value.Equals("true") || elem.Element("Include").Value.Equals("false")) ? Convert.ToBoolean(elem.Element("Include").Value) : false,
InfoName = elem.Element("Name") != null ? elem.Element("Name").Value : String.Empty,
StartDate = elem.Element("StartDate") != null ? elem.Element("StartDate").Value : String.Empty,
EndDate = elem.Element("EndDate") != null ? elem.Element("EndDate").Value : String.Empty,
Mark = elem.Element("Mark") != null ? Convert.ToDouble(elem.Element("Mark").Value) : Double.NaN
}
).ToList();
return variable;
}
public XDocument loadDocument()
{
XDocument doc = XDocument.Load("info.xml");
return doc;
}
【问题讨论】:
-
你对单元测试了解多少?
loadDocument()是做什么的?你知道如何模拟输入和依赖关系吗?你是如何在系统中做到这一点的? -
public XDocument loadDocument() { XDocument doc = XDocument.Load("info.xml");返回文件;这就是加载文档的作用。我查看了一些示例,但我主要是单元测试新手并遇到了这个障碍。
-
@EmilPopescu 尽量避免将代码放入 cmets。 edit您的问题与相关信息,使其成为minimal reproducible example
-
谁告诉你“做一些单元测试”?也许他们对您有一些有用的指示。通常你会测试你的代码单元,以确保它们按照你的想法去做。除非另有证明,否则假定提供的库代码(如 LINQ 和 LINQ to XML)可以正常工作。您的测试看起来像是在仔细检查内置功能。这通常不是很有帮助。最多,您正在检查
info.xml是否具有您期望的结构。如果是,您要检查的内容:太好了。 -
@Corak 还没有测试。到目前为止提供的代码看起来像正在测试的主题。
标签: c# linq unit-testing