Pytanie zadawane wiele razy wcześniej, ale o specyficznym skośnym rozwoju twds mvc.
Byłem bardzo dobrym chłopcem i kodowałem wszystkie moje działania kontrolera odpowiednimi testami jednostkowymi, co było świetne (jeśli czasem powtarzam trochę [czytaj DUŻO]). Szczerze mówiąc, stworzyłem mały szablon T4, aby napisać większość gołych kości wstępnych testów jednostkowych, a następnie poprawiłem odpowiednio do użycia. Przyznaję, że nie jestem do końca pewien, jak obsługiwać testy w widokach zawierających częściowe widoki - ale to historia na inne pytanie.
Teraz trudno mi zdecydować, jak głęboko powinien być zasięg w mojej warstwie usług. Powodem jest to, że niektóre z moich metod usług (na lepsze lub gorsze) faktycznie wykonują różne zapytania linq, które następnie dostarczają dyskretne informacje do późniejszej logiki w ramach metody. Wiem, że mogłem (powinienem?) Rozbić te metody, aby wywołać tylko wymaganą logikę dla każdej instrukcji linq, a następnie zastosować je w ramach metody. Jednak w wielu przypadkach nigdy nie ma ponownego użycia „funkcji” linq i dlatego wydaje się, że spowodowałoby to zbyt duże przesunięcie kodu o jeden poziom.
Pytam, przy złożonej logice występującej w ramach metody, czy „wystarczająco dobra” jest metoda testowa, która po prostu zapewnia wymagany wynik i / lub oczekiwany błąd, czy też powinna być jednocześnie symultaniczna i testowana każda linia logiczna. z mojego punktu widzenia, aby poprawnie wykonać testowanie, logika metody (linia po linii) również powinna uzyskać pewien zasięg. To jednak (według mojej naiwnej opinii) może doprowadzić do niekończącego się cyklu prób utrzymania testu i wdrożonej metody tak ściśle (tak, jak wiem, że powinny), aby stworzyć przemysł chałupniczy w samych testach.
Wiem, że moje pytanie może obrażać kilku wielbicieli TDD, którzy uznają to za bezmyślne. Nie będąc w obozie TDD, jest to dla mnie „tak rozumowanie”, stąd pytanie.
btw - sprawdziłem to pod kątem pomysłów:
szukam fwd do stałych ocen teraz :)
[edytuj] - na korzyść singla (w tej chwili singla !!) „zamknij” wyborcę. to pytanie nie jest subiektywne. Szukam concensus na bardzo skoncentrowany temat. Nie próbuję wzbudzać negatywnych namiętności, nie chcę ujawniać wad w technologii - jestem OGROMNYM fanem. Proszę więc zostawić uprzejmy komentarz na moją korzyść, jeśli głosuję za zamknięciem, ponieważ może to pomóc w restrukturyzacji pytania, jeśli istnieje dwuznaczność lub dezinformacja. to pytanie może przynieść korzyść dużej części populacji mvc.
Dziękuję Ci!!
Jim