2010-03-23 55 views
1

是否有人知道的方式來創建一個DataSet這樣,當我打電話GetXml()DataSet我會得到一個異常?我正在嘗試爲這種情況寫一些失敗測試,​​並且很難。可能嗎?損壞的數據集.NET中的故障檢測

回答

3

你可以寫一個DataSet的子類,使它的getXml()可以拋出異常嗎?

0

你可以簡單地拋出異常已損壞的數據集將引發仿效問題

+0

不,我正在測試的方法調用dataSet.GetXML(),我需要那個失敗,所以它會碰到catch塊(試圖獲得完整的代碼覆蓋率)。 – dcp 2010-03-23 16:13:30

1

這似乎是測試在ToString()電話例外。有些事情不需要失敗測試。

你會得到關於創建例外/添加到DataSet,所以一旦你有內存DataSet還沒有拋出異常的是,它總會有一個結構,使GetXml()到毫無例外地工作。

更新:看起來你可以得到它,如果你有兩個表與它們之間的一個一對多的關係,設置適配器選擇與父表信息從子表多行拋出一個異常包含在其中,然後致電GetXml()

+0

你可以參考這個鏈接:http://bytes.com/topic/net/answers/827334-dataset-getxml-returns-child-row-has-multiple-parents-exception 看來有可能得到一個例外。 – dcp 2010-03-23 16:19:06

+0

有趣的 - 我會用一種技術來更新我的答案,這種技巧會給你這個例外。 – jball 2010-03-23 16:22:28

1

根據文檔DataSet.GetXML方法不會拋出異常。

它可能會返回一個空字符串或null(雖然文檔不這樣說)但它不會拋出異常

你可能會避免異常,由第一檢查,如果結果數據集包含任何錯誤(DataSet.HasErrors)或過頭來檢查每一個表(DataTable.HasErrors)和每一行(DataRow.HasErrors)甚至去了?

+0

你確定嗎? http://bytes.com/topic/net/answers/827334-dataset-getxml-returns-child-row-has-multiple-parents-exception – dcp 2010-03-23 16:14:30

1

你可以將一個空的DataSet對象傳遞給那些調用GetXML的函數嗎? :-)

+0

是的,但得到ArgumentNullException拋出,這是在不同的捕獲。不管怎麼說,還是要謝謝你。 – dcp 2010-03-23 16:18:29

+0

好的,你想抓住什麼樣的例外? – 2010-03-23 16:20:19

+0

除了ArgumentNullException之外的任何其他內容 – dcp 2010-03-23 16:22:30