Vishal Pand3y Ответов: 0

Службы тестирования в unit test repository pattern entity framework code first


Я пытаюсь настроить модульный тест в сервисах с помощью Минимальный заказ и
Нанит Я попробовал издеваться над контекстом и DbSet как
var mockSet = new Mock<DbSet<Student>>();
var mockContext = new Mock<Context>();
mockContext.SetupGet(m => m.Student).Returns(mockSet.Object);
но Мои сервисы зависят от других сервисов, поэтому я попробовал [Setup] в методе TestInit, но когда я пытаюсь протестировать сервис, я получаю исключение " недопустимая настройка на невиртуальном (переопределяемом в VB) члене: m => M. Student""
Мне нужно решение, чтобы зарегистрировать свои услуги и единства в модульный тест

Что я уже пробовал:

//this is how my whole code looks like
   [TestClass]
    public class StudentServiceTest
    {
        private IComService _mockComService;
        private IAccountService _mockAccountService;
       
        protected MRContext Context;

        private IUnitOfWork _mockUnitWork;

        [SetUp]
        public void TestInit(MRContext context, IAccountService accountService, IComService comService, IUnitOfWork unitOfWork)
        {
            
            this._mockComService = comService;
            _mockUnitWork = unitOfWork;
            this._mockAccountService = accountService;
            Context = context;

        }

        [TestInitialize]
        public void Initialize()
        {

            var mockSet = new Mock<DbSet<Student>>();
            var mockContext = new Mock<Context>();
            mockContext.SetupGet(m => m.Student).Returns(mockSet.Object);


           
        }


        [TestMethod]
        public void AutoAssignmentCases()
        {

            var service = new StudentService(_mockAccountService, _mockComService, _mockUnitWork);
            var students = service.DoSomeTask();
            Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsFalse(students.Any(c => !c.SubjectId.HasValue));
        }
    }

0 Ответов