2010-12-07 24 views
2

今天我開始向我們正在開發一段時間的ASP.NET MVC項目添加單元測試。我創建了一個新的測試項目,並讓VS 2010生成所有的測試類。在ASP.NET MVC單元測試中使用Activator.CreateInstance(...)

運行結果測試後,所有測試都失敗。調試表明,大多數測試因爲TargetInvocationException的故障(異常已被調用的目標拋出。),其在該行

object context = Activator.CreateInstance(type); 

...被用來初始化該應用程序的DataContext的發生。爲什麼在測試運行期間拋出此異常,以及如何防止這種異常?

+1

這是一個非常模糊的例外。再次運行它並檢查內部異常以獲取更多詳細信息......併發布它。 – 2010-12-07 16:30:08

回答

4

TargetInvocationException,當從Activator.CreateInstance拋出時,通常意味着構造函數中的代碼拋出異常。正如賈斯汀所說,內在的例外可以幫助您確定究竟發生了什麼錯誤。

+1

查看了InnerException屬性,並聲明「DBDataContext的類型初始值設定項引發了異常。」事實上,它似乎是這個初始化器通過ConfigurationManager類請求連接字符串......但我的測試項目缺少一個app.config文件。通過添加此文件並在其中插入連接字符串來解決問題。 – dbaw 2010-12-08 09:12:17

0

我假設你正在使用Entity Framework(或者Linq to Sql)。難道你需要在你的測試項目中配置一個連接字符串(通過App.config)?