我有一點困難。我有一個非常基礎的類,它具有返回特定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