0
對於數據庫和特別是實體框架的單元測試,我很新,現在我被卡住了。我正在使用NUnit來測試和模擬使用的實體,並且正在使用通用資源庫。我的實體框架擁有全套POCO類和位我目前正在測試這個樣子的:實體框架4單元測試和嘲諷
campaignRepoMock = new DynamicMock(typeof(IRepository<Campaign>));
campaignRepoMock.ExpectAndReturn("First", testCampaign, new Func<Campaign, bool>(c => c.CampaignID == testCampaign.CampaignID));
CampaignService campaignService = new CampaignService((IRepository<Campaign>)campaignRepoMock.MockInstance);
Campaign campaign = campaignService.GetCampaign(testCampaign.Key, ProjectId);
Assert.AreEqual(testCampaign, campaign);
testCampaign是一個POCO運動測試對象。在IRepository的方法「第一」看起來像下面這樣:
public T First(Func<T, bool> predicate)
{
return _objectSet.FirstOrDefault<T>(predicate);
}
我從NUnit的正的錯誤是
CampaignServiceTests.Campaign_Get_Campaign:
Expected: <System.Func`2[Campaign,System.Boolean]>
But was: <System.Func`2[Campaign,System.Boolean]>
所以它基本上是說,它是得到什麼期待,但它拋出一個錯誤?也許我對這一點的理解是錯誤的,我只是想根據它的關鍵和它所鏈接的項目來測試一個Campaign的搜索。 GetCampaigns方法僅搜索發送給它的存儲庫,以獲取包含這兩個項目的廣告系列。
任何人都可以指出我做錯了什麼?提前致謝。
嗨,感謝您的回答,我會調查並回復你。我正在使用NUnit.Mocks模擬框架。我看着Moq,但卻無法像這樣輕鬆地將我的頭轉過來,也許我應該再去一次。 – Chiefy
一旦你得到它,它真的很容易。看看Moq的這個介紹:http://www.dimecasts.net/Casts/CastDetails/8 –
感謝丹尼斯,在這裏也發現了一個很好的帖子http://stackoverflow.com/questions/5769414/cannot-seem -to-MOQ-EF-codefirst-4-1-求助的人。原來搜索「EF」會比「實體框架」帶來更多的結果。將使用Moq代替。 – Chiefy