Получить репозиторий из nunit test в ядре .net - PullRequest
0 голосов
/ 06 апреля 2019

У меня есть application, и я использую модульный тест в приложении.Я написал код ниже в модульном тесте.

using NUnit.Framework;
using YTPanel.Models.Repository;

namespace Tests
{
    public class StudentTest
    {
        private readonly StudentRepository repo;
        public StudentTest(StudentRepository context)
        {
            repo = context;
        }

        [Test]
        public void TestList_Default()
        {

            //var result = repo.GetStudents(1, 8, null).ToList();
            //Assert.IsNotNull(result);
          Assert.Pass();
        }
    }
}

Я добавил проект в модульный тест в качестве ссылки.Но когда я запускаю тест, у меня не получается из-за кода ниже

private readonly StudentRepository repo;
        public StudentTest(StudentRepository context)
        {
            repo = context;
        }

Мой класс репозитория ученика ниже

 public class StudentRepository
    {
        private readonly YTContext _db;
        public StudentRepository(YTContext context)
        {
            _db = context;
        }

        public  List<Student> GetStudents(int page, int limit = 8, string query = null)
        {
            try
            {
                var skip = (page - 1) * limit;
                var students = _db.Students.Where(x => query == null || x.Name.Contains(query) || x.Surname.Contains(query) || x.University.Name.Contains(query) || x.Bolum.Name.Contains(query))
                    .Include(x=>x.Bolum).Include(x=>x.University)
                    .Skip(skip).Take(limit).ToList();
                return students;
            }
            catch (Exception ex)
            {
                return null;
            }

        }
    }

Как мне добраться до этого класса из юнит-теста.Что я пропустил?

Заранее спасибо

1 Ответ

0 голосов
/ 08 апреля 2019

Вы не должны проверять свой код на реальных данных из базы данных. Я думаю, именно поэтому ваш тест не проходит. Он не может установить соединение с БД и, следовательно, не может.

Вы должны издеваться над своим IStudentRepository и тестировать свой код с любыми данными, которые вы выбрали для фальшивого возврата из вашего репо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...