testy jednostkowe i sesja

0

Ponieważ to mój pierwszy post to się może przywitam. Cześć :)

A teraz do rzeczy. Próbuję się nauczyć pisać testy jednostkowe. Projekt na który mam do nauki jest napisany w MVC (trochę głęboka woda ale co tam ;) ) Sprawa jest taka że w wielu miejscach mam tam do czynienia z sesją. Nie udało mi się znaleźć nic przydatnego w googlach na ten temat. Zakładam że trzeba będzie mockować, tylko nie wiem jak. :/ Ktoś mógłby mi pomóc? Przykładowa metoda:

public ActionResult Method1()
        {
            if (Session["stan1"] != null && (bool)Session["stan1"])
            {
                ViewBag.enum = enum.wart1;
            }
            else
            {
                ViewBag.enum = enum.wart2;
            }
            return View();
        }

Chciałbym też zapytać czy jest sens w kontrolerach sprawdzać czy wzracany jest odpowiedni widok w takich metodach jak ta czy wystarczy jeśli ten widok nie będzie pusty? Za wszelkie rady co do testowania MVC (i nie tylko) będę wdzięczny.

0

Najprostsze rozwiązanie - nie używać sesji. Do czego w ogóle jest Ci ona potrzebna?
Druga sprawa - tworzysz interfejs IMagicDataStore i piszesz implementację wewnętrznie korzystającą z Session na potrzeby aplikacji, a na potrzeby testów mockujesz.

Co do pytania o testy kontrolerów. Są tacy, którzy je testują. Są też tacy, którzy zamiast tracić czas wolą iść na piwo.
Osobiście uważam, że jeśli nie upycha się logiki biznesowej w kontrolerach, to nie ma sensu ich testować. To, czy nawigacja działa można łatwo sprawdzić ręcznie.

0

Sesja jest potrzebna, bo ta aplikacja sprawdza przed niektórymi akcjami czy użytkownik jest zalogowany. Jeśli jest to pozwala mu iść dalej. A co do kontrolerów to w nich jest większość logiki w tej aplikacji. Dodam że to nie jest mój kod więc nie mi decydować co gdzie ma być. ;)

0
pedro191 napisał(a):

Sesja jest potrzebna, bo ta aplikacja sprawdza przed niektórymi akcjami czy użytkownik jest zalogowany. Jeśli jest to pozwala mu iść dalej.

Przecież do tego są wbudowane w MVC mechanizmy. O atrybucie Authorize nie słyszeliście?

0

Ja nie słyszałem, ale ja nie wiem wiele o MVC. Pogadam o tym z odpowiedzialną osobą. Mówił mi że możliwe jest, że to co napisał można napisać lepiej pod kątem testowalności, więc może być lepiej. Dzięki za rady.

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