Я очень новичок в модульном тестировании, когда речь идет о базах данных и особенно об объектах, и теперь я застрял.Я использую NUnit для тестирования и макета используемых объектов и работаю с использованием универсального репозитория.Моя инфраструктура сущностей имеет полный набор классов POCO, и бит, который я сейчас тестирую, выглядит следующим образом:
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]>
Так что в основном говорится, что он получает то, что оножидает, но его выбрасывает ошибку?Возможно, мое понимание этого неверно, я просто хочу проверить поиск Кампании на основе ее ключа и проекта, с которым она связана.Метод GetCampaigns просто ищет в репозитории, отправленном в него, кампанию, в которой есть оба этих элемента.
Может кто-нибудь указать мне, что я делаю неправильно?Заранее спасибо.