我有一点困难。我有一个非常基础的类,它具有返回特定XPath查询结果的函数。单元测试函数XPath查询结果?
这是我目前使用的代码。
[TestFixture]
public class MarketAtAGlance_Test
{
private XmlDocument document;
private MarketAtAGlance marketAtAGlance;
[SetUp]
public void setUp()
{
this.document = new XmlDocument();
// load document from file located in the project
this.marketAtAGlance = new MarketAtAGlance(document);
}
[Test]
public void getHourlyImport_Test()
{
Assert.AreEqual(100.0d, marketAtAGlance.getHourlyImport());
}
[Test]
public void getHourlyExport_Test()
{
Assert.AreEqual(1526.0d, marketAtAGlance.getHourlyExport());
}
}
public class MarketAtAGlance
{
XmlDocument document;
public MarketAtAGlance(XmlDocument document)
{
this.document = document;
}
public double getHourlyImport() {
double value = Convert.ToDouble(document.SelectSingleNode("//information[@id=\"dat11\"]/new_val").InnerText);
return value;
}
public double getHourlyExport() {
double value = Convert.ToDouble(document.SelectSingleNode("//information[@id=\"dat12\"]/new_val").InnerText);
return value;
}
}
这是我第一次使用单元测试,所以我仍然不确定许多次要的事情。如您所见,我正在加载位于硬盘上的静态XML文件。我应该有额外的依赖项还是将XML文本放在一个大字符串中?我正在加载一个较旧的XML文件(使用相同的格式),因为我可以使用已知的值进行测试。
另外,我怎么会去单元测试的XmlHttpReader(类,它在XML URL和负载它作为一个文件?
我对设计问题或意见有何评论?
我觉得保持测试数据的设置尽可能简单很有帮助。这有助于揭示测试试图完成的内容。 – Mark 2009-11-19 20:25:59