koleś tam chyba mocno namotał, bo w tytule jest "why i don't unit test", a potem pokazuje tweety z treścią np. "i haven't written any test in 5 years". no to w końcu chodzi o unitowe czy jakiekolwiek? potem jednak (moment ok 1:45) rozgranicza testy na unitowe, integracyjne i e2e, a więc to sugeruje, że pomija tylko pierwszą kategorię, a resztę zostawia. w 2:22 nawet mówi o tym wprost: "the best ways don't tend to be testing at all, if they are they are integration and e2e testing". w 5:07 mówi o tym, że zaledwie w 3 przypadkach testy unitowe mogłyby wykryć błąd przed wdrożeniem na produkcję (i że 2 przypadki były i tak zbyt skomplikowane na unit test) - to jest trochę średnie, bo unit testy są raczej po to, by skrócić feedback do kilku minut albo ułamka minuty, a nie po to, by wykrywać nimi wszystkie problemy, które chcemy wykryć (mamy przecież wiele poziomów testów, nie tylko unitowe).
w 6:01 zaczyna się gadka o usztywnianiu (cementowaniu) kruchego kawałka kodu unit testami, po to by go łatwo nie zepsuć. dla mnie to brzmi jak mockowanie wszystkiego jak leci (kopiowanie logiki produkcyjnej do mocków), po to by nie dało się zmienić kodu produkcyjnego bez mockowania od nowa. "you took thing that barely works and you duct taped and cemented it in place so it can't ever move so it's less likely to break". prawdopodobnie padł ofiarą mocksturbacji (określenie od @jarekr000000 - może zweryfikować czy właściwie użyte :) ) i myśli, że wszystkie unit testy powielają ten schemat. kolejne stwierdzenie utwierdza mnie w przekonaniu, że tak właśnie było: "the time spent reinforcing it with unit tests to double or more the amount of code just to make sure that thing doesn't break again it's time you could almost always have spent rewriting the thing so it's less fragile in the first place". przy mockowaniu jak leci refaktor czy przepisywanie kawałków kodu od nowa jest utrudnione, ale jeśli ograniczamy używanie mocków do minimum to testy wręcz nam ułatwiają przepisywanie badziewnej logiki na lepszą, bez psucia samego obserwowalnego z zewnątrz zachowania kodu.
wielokrotnie pojawia się motyw pokrycia kodu i nacisku na to. tylko kto faktycznie się tym przejmuje? w firmie włączyłem pokrycie kodu we wszystkich bibliotekach i mikroserwisach, które mamy (trochę pracy z tym było). ostatecznie tylko ja sprawdzałem to pokrycie i to tylko przez pewien czas, bo szybko mi się znudziło. reszta ludzi w zespole widziała to pokrycie chyba tylko na demie, który robiłem i tyle. możliwe, więc że ktoś go skrzywdził tym naciskiem na pokrycie testami: 7:16 "if you have one of those dumb 100 code coverage rules at work and some senior engineer from ex-amazon or some that insists you all need 100 code coverage everything's going to go to hell send them this video seriously". ja jednak nie znam tego typu historii.
wielokrotnie pojawia się stwierdzenie typu: "build safety nets not guardrails". ee, tylko jaki jest koszt tworzenia tych safety nets? jak wygląda konkretne porównanie między nimi, a unit testami? nie wiadomo. wiadomo jednak, że jeśli ktoś z tego filmiku wywnioskuje, że może po prostu wywalić testy i świętować sukces to na pewno nie zrozumiał przekazu, bo pominął kluczowe dla całego wywodu zastępowanie testów tą totalnie niesprecyzowaną "safety net".