Moje pytania dotyczą głównie metodologii testowania. Pracuję dla organizacji, która zajmuje się TDD (Test Driven Development). Używamy AngularJS, a więc jego pełnego stosu testowego - Jasmine do testów jednostkowych i Kątomierza do testowania e2e.Czy koniec 2 testu wystarczy?
Przy opracowywaniu obiektu nasz proces rozpoczyna się od napisania najpierw nieudanych testów e2e, a następnie zapisania funkcji za pomocą TDD. Testy są pisane tylko dla publicznych metod (czy to dla kontrolera/dyrektyw/usług). Sam produkt nie zawiera żadnej złożonej logiki (oprócz kilku wyjątków). Niedawno zaczęliśmy rozmawiać o tym, że pisanie testów jednostkowych dla kontrolerów nie ma sensu, ponieważ eksponują funkcjonalność, w 100% są wystawiane na widok i testowane przy użyciu testów e2e. Zasadniczo - testy jednostkowe i testy e2e nakładają się. Na początku wszyscy się zgodziliśmy, ale wtedy ta decyzja otworzyła pudełko Pandory. W końcu to samo można powiedzieć o dyrektywach. Dlaczego więc je testować? Potem pojawiła się kwestia usług. Większość z nich (98%) wykonuje po prostu wywołanie zwrotne i zwraca odpowiedź. Dlaczego więc nie po prostu pozorować httpBackend i przetestować usługi podczas testowania kontrolerów, które są testowane przez e2e.
dostać dryfu ....
ja widzę korzyści w sposób zarówno testy jednostkowe i testy e2e, pomimo ich praktycznie pokrywają. Głównie - natychmiastowa informacja zwrotna i "wykonywalna dokumentacja". Co praktykujesz? Czy widzisz inne korzyści i to "sok wart wyciskania" - czy warto pisać nakładające się testy dla najprostszych implementacji tylko po to, aby uzyskać te dwie korzyści powyżej?
Jeśli napisać dobry kod to opinia, możesz go usunąć, ale możesz również napisać pytanie o wzorce projektowe i wiele innych pytań wysokiego poziomu. – Shvilam
Cześć chłopaki. Chociaż rozumiem twoją troskę, moje pytanie dotyczy metodologii, a te pytania nigdy nie mają jednoznacznych odpowiedzi. Nawet jeśli metodologia jest dobrze zdefiniowana, wszyscy ją stosują inaczej, a moim pytaniem było, aby inni dzielili się swoimi praktykami i doświadczeniem w zakresie metod testowania. W tym celu należy rozpalić dyskusję. Kiedy już tak się stanie, wynikiem może być konwergencja z jedną odpowiedzią, której szukasz. –