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