TDD oznacza Test-Driven Development lub Test-Driven Design. Jest to praktyka pisania testu jednostkowego przed napisaniem kodu, aby go spełnić, w tak zwanym cyklu Refaktora Czerwono-Zielonego.
Załóżmy, że piszesz grę TDD w stylu Yahtzee. Chcesz przetestować tę część kodu, która określa, czy zestaw pięciu rzutów matryc jest fularem, czy nie. O ile mi wiadomo, wykonując TDD, przestrzegasz następujących zasad: Najpierw napisz testy Napisz najprostszą możliwą rzecz, która działa Udoskonal i refaktoryzuj Tak więc początkowy test może …
Nie jestem nowy w kodowaniu. Koduję (poważnie) od ponad 15 lat. Zawsze miałem jakieś testy dla mojego kodu. Jednak w ciągu ostatnich kilku miesięcy uczyłem się projektowania / rozwoju opartego na testach (TDD) przy użyciu Ruby on Rails . Jak dotąd nie widzę korzyści. Widzę pewne korzyści z pisania testów …
Jak robiąc TDD i pisząc test jednostkowy, jak oprzeć się pokusie „oszukiwania” podczas pisania pierwszej iteracji testowanego kodu „implementacyjnego”? Na przykład: muszę obliczyć silnię liczby. Zaczynam od testu jednostkowego (przy użyciu MSTest) czegoś takiego jak: [TestClass] public class CalculateFactorialTests { [TestMethod] public void CalculateFactorial_5_input_returns_120() { // Arrange var myMath = …
Zawsze widziałem zalecenie, aby najpierw napisać testy jednostkowe, a następnie zacząć pisać kod. Ale czuję, że pójście w drugą stronę jest dla mnie znacznie wygodniejsze - pisz kod, a następnie testy jednostkowe, ponieważ czuję, że po napisaniu właściwego kodu mamy znacznie większą przejrzystość. Jeśli napiszę kod, a następnie testy, być …
Rozwój oparty na testach. Rozumiem, podoba mi się. Ale testy pisemne wymagają narzutu. Tak więc TDD powinno być stosowane uniwersalnie w całej bazie kodu, czy też istnieją obszary, w których TDD zapewnia wysoki ROI oraz inne obszary, w których ROI jest tak niski, że nie warto go śledzić.
W Test Driven Development (TDD) zaczynasz od rozwiązania nieoptymalnego, a następnie iteracyjnie produkujesz lepsze, dodając przypadki testowe i refaktoryzując. Kroki mają być małe, co oznacza, że każde nowe rozwiązanie będzie w jakiś sposób znajdować się w sąsiedztwie poprzedniego. Przypomina to matematyczne lokalne metody optymalizacji, takie jak opadanie gradientu lub wyszukiwanie …
Zgodnie z zasadami testów jednostkowych TDD są pisane przed kodem produkcyjnym, ale co z testami integracyjnymi, które ćwiczą interakcję między konkretnymi (nie udawanymi) obiektami przewodowymi? Czy powinny być napisane przed testami jednostkowymi czy po kodzie produkcyjnym, aby przetestować „okablowanie”? Pamiętaj, że nie mówię o testach akceptacyjnych ani funkcjonalnych, ale testach …
Jaki jest związek między BDD a TDD? Z tego, co zrozumiałem, BDD dodaje dwie główne rzeczy w stosunku do TDD: nazewnictwo testów (zapewnij / powinieneś) i testy akceptacyjne. Czy powinienem stosować się do TDD podczas opracowywania przez BDD? Jeśli tak, to czy moje testy jednostek TDD powinny być nazywane w …
Wiem, że niektórzy ludzie są masowymi zwolennikami rozwoju opartego na testach. W przeszłości używałem testów jednostkowych, ale tylko do testowania operacji, które można łatwo przetestować lub które, jak sądzę, będą prawdopodobnie poprawne. Wydaje się, że pełne lub prawie całkowite pokrycie kodu zabiera dużo czasu. Do jakich projektów używasz programowania opartego …
Załóżmy, że zaczynam rozwijać grę RPG z postaciami atakującymi inne postacie i tym podobne rzeczy. Stosując TDD, wykonuję kilka przypadków testowych w celu przetestowania logiki wewnątrz Character.receiveAttack(Int)metody. Coś takiego: @Test fun healthIsReducedWhenCharacterIsAttacked() { val c = Character(100) //arg is the health c.receiveAttack(50) //arg is the suffered attack damage assertThat(c.health, is(50)); …
Podczas poprawiania błędów zaleca się, aby najpierw napisać test, który nie powiedzie się z danym błędem, a następnie naprawić kod, dopóki test się nie powiedzie. Jest to zgodne z praktykami TDD i powinno być dobrą praktyką, ale zauważyłem, że ma tendencję do tworzenia tajemniczych testów, które są bardzo zbliżone do …
W innym pytaniu ujawniono, że jednym z problemów związanych z TDD jest utrzymywanie pakietu testowego w synchronizacji z bazą kodu podczas i po refaktoryzacji. Teraz jestem wielkim fanem refaktoryzacji. Nie zamierzam rezygnować z TDD. Ale doświadczyłem również problemów z testami napisanymi w taki sposób, że niewielkie refaktoryzowanie prowadzi do wielu …
Rozpoczęliśmy nowy (dość duży) projekt, który planowaliśmy rozwijać przy użyciu TDD. Pomysł TDD zawiódł (wiele powodów biznesowych i niezwiązanych z biznesem), ale teraz rozmawiamy - czy powinniśmy pisać testy jednostkowe, czy nie. Mój przyjaciel mówi, że pisanie testów jednostkowych bez TDD nie ma sensu (lub jest bliski zeru), powinniśmy skupić …
Zacznę swój pierwszy prawdziwy projekt w Ruby on Rails i zmuszam się do napisania testów TDD . Nie widzę prawdziwych korzyści z pisania testów, ale ponieważ wydaje się to bardzo ważne, spróbuję. Czy konieczne jest przetestowanie każdej części mojej aplikacji, w tym stron statycznych?
Czy można oczekiwać 100% pokrycia kodu w aplikacjach internetowych typu jquery / backbonejs? Czy uzasadnione jest niepowodzenie sprintu z powodu niespełnienia 100% pokrycia, gdy rzeczywiste pokrycie kodu oscyluje w granicach 92% -95% w javascript / jquery?
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.