Pytania otagowane jako assertions

Asercje umożliwiają przetestowanie założeń dotyczących programu. Na przykład, jeśli napiszesz metodę obliczającą prędkość cząstki, możesz stwierdzić, że obliczona prędkość jest mniejsza niż prędkość światła.

3
Czy twierdzenia lub testy jednostkowe są ważniejsze?
Zarówno twierdzenia, jak i testy jednostkowe służą jako dokumentacja bazy kodu i sposób wykrywania błędów. Główne różnice polegają na tym, że funkcja działa jako kontrola poczytalności i widzi rzeczywiste dane wejściowe, podczas gdy testy jednostkowe działają na określonych symulowanych danych wejściowych i są testami na podstawie jednej dobrze zdefiniowanej „właściwej …

4
Używasz asercji zamiast rzucać wyjątkami?
Często, gdy piszę funkcje, chcę się upewnić, że dane wejściowe są prawidłowe, aby wykryć takie błędy jak najwcześniej (uważam, że są to tak zwane warunki wstępne). Kiedy warunek wstępny zawiedzie, zawsze rzucałem wyjątek. Ale zaczynam wątpić, czy jest to najlepsza praktyka, a jeśli nie, twierdzenia byłyby bardziej odpowiednie. Więc kiedy …

9
Czy można napisać zbyt wiele twierdzeń?
Jestem wielkim fanem pisania assertczeków w kodzie C ++ jako sposobu na złapanie przypadków podczas programowania, które nie mogą się zdarzyć, ale zdarzają się z powodu błędów logicznych w moim programie. Jest to ogólnie dobra praktyka. Zauważyłem jednak, że niektóre funkcje, które piszę (które są częścią złożonej klasy) mają 5+ …


8
Powinny istnieć twierdzenia w kompilacjach wersji
Domyślnym zachowaniem assertw C ++ jest brak działania w kompilacjach wersji. Zakładam, że dzieje się tak ze względu na wydajność i być może w celu uniemożliwienia użytkownikom wyświetlania nieprzyjemnych komunikatów o błędach. Twierdzę jednak, że sytuacje, w których assertstrzeliłby, ale został wyłączony, są jeszcze bardziej kłopotliwe, ponieważ aplikacja najprawdopodobniej ulegnie …

9
Czy zbyt wiele stwierdzeń ma zapach?
Naprawdę zakochałem się w testach jednostkowych i TDD - jestem zainfekowany testowo. Jednak testy jednostkowe są zwykle stosowane w metodach publicznych. Czasami jednak muszę przetestować pewne założenia-twierdzenia również metodami prywatnymi, ponieważ niektóre z nich są „niebezpieczne”, a refaktoryzacja nie może dalej pomóc. (Wiem, ramy testowania umożliwiają testowanie metod prywatnych). Stało …

1
Testy jednostkowe: odroczone twierdzenia z Linq
Czy można dodawać odroczone twierdzenia w ten sposób? var actualKittens = actualKittens.Select(kitten => { Assert.IsСute(kitten); return kitten }); Dlaczego? Mogę więc powtórzyć tylko raz, nawet w przypadku stwierdzeń oczekujących zmaterializowanej kolekcji, na przykład: CollectionAssert.AreEquivalent(expectedKittens, actualKittens.ToList()); Może to być nie tylko Select, ale metoda ze zdefiniowanym iteratorem i mająca wiele kontroli …

5
Jak mogę poprawić sprawdzanie błędów i obsługę?
Ostatnio staram się zrozumieć, jaka jest właściwa ilość sprawdzania i jakie są właściwe metody. Mam kilka pytań na ten temat: Jaki jest właściwy sposób sprawdzania błędów (złe dane wejściowe, złe stany itp.)? Czy lepiej jest jawnie sprawdzać błędy, czy używać funkcji takich jak asercje, które można zoptymalizować z końcowego kodu? …
13 c  testing  assertions 

3
Python - aser vs if & return
Piszę skrypt, który robi coś z plikiem tekstowym (to, co robi, nie ma znaczenia dla mojego pytania). Więc zanim zrobię coś z plikiem, chcę sprawdzić, czy plik istnieje. Mogę to zrobić, nie ma problemu, ale chodzi bardziej o estetykę. Oto mój kod, implementujący to samo na dwa różne sposoby. def …

1
Wpisywanie kaczek, sprawdzanie poprawności danych i asertywne programowanie w języku Python
O pisaniu kaczek : Wpisywaniu kaczek pomaga zwykle nie testować typów argumentów w metodach i funkcjach, polegając na dokumentacji, czytelnym kodzie i testowaniu w celu zapewnienia poprawnego użycia. Informacje na temat sprawdzania poprawności argumentów (EAFP: Łatwiej prosić o wybaczenie niż pozwolenie). Dostosowany przykład stąd : ... uważa się za bardziej …

2
kod umów / stwierdzeń: co ze zduplikowanymi czekami?
Jestem wielkim fanem pisania stwierdzeń, umów lub wszelkiego rodzaju czeków dostępnych w języku, którego używam. Jedną z rzeczy, która mnie trochę niepokoi, jest to, że nie jestem pewien, jaka jest powszechna praktyka postępowania z duplikatami kontroli. Przykładowa sytuacja: najpierw piszę następującą funkcję void DoSomething( object obj ) { Contract.Requires<ArgumentNullException>( obj …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.