У меня есть нормальный контекст Entity Framework, который выглядит следующим образом:
public class LikvidoWebsitesApiContext : IdentityDbContext<ApplicationUser>, ILikvidoWebsitesApiContext
{
// code
}
Я сделал интерфейс с моим DBSets
.
В моем обычном решении я настроил его на Ninject следующим образом:
kernel.Bind<ILikvidoWebsitesApiContext>().To<LikvidoWebsitesApiContext>().InRequestScope();
Я использую контекст в своих службах, добавляя ILikvidoWebsitesApiContext
внутри конструктора, и затем я могу использовать базу данных.
Мой вопрос: как мне настроить это в модульном тесте?
Я пытался сделать следующее:
kernel.Bind(typeof(ILikvidoWebsitesApiContext))
.To(typeof(Mock<LikvidoWebsitesApiContext>))
.Register(true);
(с использованием Moq
framework)
Однако это дает:
System.InvalidCastException: 'Невозможно привести объект типа' Moq.Mock`1 [Likvido.Domain.Services.Data.LikvidoWebsitesApiContext] ', чтобы ввести' Likvido.Domain.Services.Data.ILikvidoWebsitesApiContext '.'
Что имеет смысл, но я не совсем уверен, как это исправить?