2011-11-21 44 views
0

我在C#中使用的是Visual Studio Express Edition 2010的NUnit,現在通常測試都可以正常工作。但是每當我嘗試使用Massive.cs,這是開源的api來訪問數據庫。測試僅從該文件失敗。現在,如果我運行該應用程序,api工作正常。我創建了一個不同的庫文件來訪問數據庫。NUnit沒有通過.Net 4.0的動態關鍵詞測試失敗

我真的不明白錯誤。它只是給出錯誤,對象引用未設置爲對象。但是如果我運行代碼,它工作正常。我正在使用動態關鍵字,如上面的api鏈接所示。這是否使NUnit的問題?

有沒有其他的方法來測試這種類型的方案?

這裏是代碼的進一步的細節,

Test類是這樣

dynamic item = new Item(); 
item.Insert(new { Name = "Maggi", Description = "Its 2 Min Nuddles", IsDelete = false }); 

var items = item.All(); 

Assert.AreEqual("Maggi", items.FirstOrDefault().Name); 

現在,我已經把這裏的測試。這給錯誤,如顯示圖像, Error coming while testing with NUnit

現在如果我運行控制檯應用程序代碼,然後代碼工作正常,代碼片斷如下

dynamic item = new Item(); 
     item.Insert(new { Name = "Maggi", Description = "Its 2 Min Nuddles", IsDelete = false }); 


     var result = item.All(); 

     foreach (var i in result) 
     { 
      Console.WriteLine(i.Name + i.Description); 
     } 

     Console.Read(); 

這裏給出的代碼工作,同樣的事情是不適用於NUnit測試。請看看並幫助我。請讓我知道是否需要我的進一步信息。

+3

確切的錯誤是什麼? – alexn

+2

它可能正在尋找某種全局靜態,如Application。代碼和錯誤會很有用。 –

+0

感謝您的快速回復...我自己添加屏幕截圖問題,請看看... – kunjee

回答

0

已解決... NUnit測試存在問題。它沒有完全採用配置文件。所以,我做了兩個改變。項目設置中所做的更改。

首先更改是將應用程序庫更改爲bin \ debug,然後將應用程序庫設置爲此,然後將.config文件配置爲.exe.config,並啓動並運行。 :)

0

最可能的解釋是您沒有在測試項目中設置連接字符串。
如果您使用的是NUnit,只需將其放入測試項目的app.config即可。

+0

我在測試項目中設置了連接字符串,這就是爲什麼其他代碼正在運行,它只在測試項目中運行。我把這個檢查,這個連接問題。我仍然交叉檢查並回來。 – kunjee

+0

好的,你能設置'調試 - >異常 - >公共語言運行時異常'在拋出時破壞,在調試器下運行測試,看看'null'究竟是什麼? –

+0

注意工作。你有沒有檢查API。錯誤是在創建構造函數, 公共類derivedClass:DynamicModel { 公共derivedClass() :基地( 「ExpenseManager」, 「收入」, 「ID」) { } } 當這個構造函數調用,它給出了錯誤,如上圖所示。 – kunjee