Mvc, jak testować kontroler, jak z mockwać DBContext, lub ogólnie bazę danych.

0

Powiedzmy że mam kontroler,

        private DbContext db = new DbContext();
        public MyControler(DbContext  db)
        {
              this.db = db;
         }
       public Details(int id)
       {
             var students = this.db.Students.Where(AgePredicate);
            // body
            return View(student);
       }

W jaki sposób go przetestować co podstawić, w miejsce bazy danych. Na te chwilę nie mam pojęcia jak to ugryźć, jedne co mi przychodzi do głowy i byłoby jako tako skalowalne, to przeniesienie dostępu do bazy jako metody w osobnej klasie coś w stylu GetOldStudents(){return db.Students.Where(AgePredicate);}. Takie coś umiał bym sobie prosto podstawić. Ale pisanie wielu bardzo podobnych metod mi się nie podoba i nie jestem przekonany do takiego rozwiązania. Poradzi coś ktoś?

2

Po pierwsze to nie trzymaj logiki w kontrolerach bo nie da się jej przetestować.
Po drugie mockowanie contextów link

1 użytkowników online, w tym zalogowanych: 0, gości: 1