回答
正如rwwilden所示,如果您使用基於流的API而不是基於文件名的API,生活會更容易。在這裏使用嘲諷並不是非常合適,國際海事組織;你不是在做「協議測試」 - 你只是想要一個數據源。
您也可以提供過載是一個簡單實用的方法:
public Result ParseXml(string file)
{
using (Stream stream = File.OpenRead(file))
{
return ParseXml(stream);
}
}
然後你可以合理安全不測試方法 - 它在它沒有顯著的邏輯,畢竟。
現在你能測試通過在代碼中使用硬編碼的字符串,然後調用Encoding.UTF8.GetBytes(xml)
和建設所產生的字節數組圍繞MemoryStream
...但我一般基於流的API更願意使用不同的數據文件在我的測試項目中。將內容類型設置爲「嵌入資源」,然後使用Assembly.GetManifestResourceStream
獲取測試文件的流。
如果這確實是一個普通的XML文件,但是您真的想自己解析嗎?是否有任何理由不希望將其留在框架中,並根據DOM API,LINQ to XML或XmlReader
來表達您的API?
所有您需要做的是找到一種方法來告訴你的班級讀什麼文件。所以這取決於你的班級是如何實施的。最簡單的辦法是這樣的:
public class ClassToTest : IClassToTest
{
public Result ParseXml(Stream xml)
{
// Parse xml and return result.
return ...;
}
}
[Test]
public void TestParseXml()
{
// Get xml stream to test from somewhere.
Stream xmlStream = ...;
// Call method to test.
var result = new ClassToTest().ParseXml(xmlStream);
// Assert results.
Assert.IsNotNull(result);
...
}
的想法是,你以某種方式爲您提供與您創建一個XML文件,測試類和你知道什麼解析結果的期望。
我不想檢查文件的閱讀。我只想單元測試解析。模擬系統可以以某種方式幫助我? – 2010-06-13 07:37:28
也許你可以提供一些你想測試的方法或類的代碼? – 2010-06-13 07:45:30
- 1. 如何對文件管理器類進行單元測試?
- 2. 如何進行單元測試子類
- 3. 如何對wxPython進行單元測試?
- 4. 如何對rxjs5進行單元測試?
- 5. 如何對Response.Redirect進行單元測試?
- 6. 如何對IDataErrorInfo進行單元測試?
- 7. 如何對Xtext進行單元測試
- 8. 如何對FileContentResult進行單元測試?
- 9. 如何使用xml文件對我的HtmlUnit代碼進行單元測試
- 10. 如何對Metro可執行文件中定義的類進行單元測試
- 11. 如何使用EasyMock對文件進行測試寫入/讀取
- 12. 如何對這個文件進行單元測試?
- 13. Python:如何單元測試讀取命令行arg的類?
- 14. 如何對與系統(或Android)類進行交互的單元測試方法進行單元測試
- 15. 如何對使用Web服務的類進行單元測試?
- 16. 如何對內部使用HttpURLConnection的類進行單元測試?
- 17. 讀取配置文件的類的單元測試
- 18. 如何單元測試讀取或寫入文件的函數?
- 19. 如何單元測試創建和讀取文件的方法
- 20. 如何在PHP中對PCNTL forker類進行單元測試?
- 21. 如何對這個類進行單元測試?
- 22. 如何在Android中對這個類進行單元測試?
- 23. 如何對通用類進行單元測試
- 24. 如何對MVC類進行單元測試?
- 25. 如何對抽象類進行單元測試
- 26. 如何對UIGestureRecognizer子類進行單元測試?
- 27. 如何對SAPUI5控件的onBeforeRendering進行單元測試?
- 28. 如何對基於UI的事件進行單元測試?
- 29. 如何對數據提取方法進行單元測試
- 30. 如何使用System.Windows.Threading.Dispatcher對單元進行單元測試
對於其他人對此路徑工作方式感到困惑的地方,它看起來像下面這樣:'Your.Project.Name.SubFolder.FileName.extension'。 – crush 2014-04-17 19:56:03