#linux #ubuntu #python #django #tdd Cześć Mirki, zainstalowałem sobie pierwszy raz Linuxa ( Ubuntu 16 ). Polecicie mi jakieś aplikacje, które na codzień ułatwiają obcowanie z Ubuntu? Może jakiś inny terminal, albo menadżer plików, nie znam w sumie żadnych linuxowych świętych app-graali.

Celem instalacji jest bezproblemowe przerobienie sobie zawartości książki "TDD w praktyce" ( https://www.safaribooksonline.com/library/view/tdd-w-praktyce/9781457196850/ - mam w wersji papierowej, ale jak przysiadam do komputera to wygodniej pracować z ebookiem na połowie
@tauku: Generalnie stosujesz podstawowe zasady pisania dobrego kodu niezależnie od tego czy masz do niego testy czy nie:
1. Małe funkcje, które robią jedną rzecz a nie milion
2. Funkcje nie powinny mieć efektów ubocznych, tylko coś zwracać. (Nie licząc oczywiście takich przypadków jak pisanie do bazy, na dysk czy wysyłanie mejli. Tego nie unikniesz, chodzi o globalny stan aplikacji)
3. Unikaj wielu ścieżek. Jak masz 20 ifów w jednej funkcji,
@coola: wujek bob to najwieksza sciema ever. Widzialem goscia na zywo, wypromowal sie i kreuje na nie wiadomo kogo a ostatni kod napisal pol wieku temu. Ugh. Do tego jest bardzo dogmatyczny. Absolutne nie dla tego goscia.
@MrDziobak: "dot. testów jednostkowych w odniesieniu do web dev"

W przypadku testów jednostkowych nie ma absolutnie znaczenia czy to web dev, game dev czy cokolwiek innego.
W dużym uproszczeniu testujesz czy funkcje/metody publiczne w Twoim kodzie robią to co powinny.

Jako to co powinno się dziać możemy uznać dwie rzeczy:
- czy dla danych parametrów wejściowych to co jest rezultatem funkcji jest poprawne (czyli sprawdzamy czy dla metody sum(1,1) wartość zwracana
Poszukuję odpowiedzi jak przetestować tworzenie sesji w Symfony. Zakładamy, że jakiś kod tworzy sesję i chcę go przetestować, czy dane są odpowiednie. Mam kilka pomysłów na to, np. zamiast tworzyć sesję to tworzę obiekt i dopiero później zapisać dane z tego obiektu do sesji, tak więc przy testowaniu sprawdzałbym ten obiekt pomijając tą sesję.

#programowanie #php #webdev #tdd
@krotki_pojedynek: Chcesz testować frameworka czy piszesz własną obsługę?

Sesji pisanej sememu jako reprezentacji wbudowanych funkcji nie przetestujesz jednostkowo - co najwyżej w naiwny sposób, gdzie dobrze napisane testy niczego nie gwarantują, bo same zależą od infrastruktury. Pozostaje jakieś funkcjonalne QA przy uwzględnieniu wielu konfiguracji. Podsumowując: piszesz sam i bawisz się w ciężkie testy, albo "piszesz" przepisując gotowce po swojemu, bo "musisz wszystkiego dotknąć żeby uwierzyć":)

Sesja nie wymaga warstwy, która ją
@CichyGlosZTyluGlowy: Gdyż metoda ta ma w zalozeniu krotkie interwały test/program/sprawdzenie. Mniej więcej podobny jest sens kompilowania programu z niedokonczona funkcjonalnością, w celu sprawdzenia czy to co napisałeś działa wg tego co wymyśliłeś. Jeśli pisanie funkcjonalności zajmie Tobie dużo czasu, a nie będziesz sprawdzał, czy fragmenty dobrze działaja, skończy się na tym, ze będziesz miał zaimplementowaną źle funkcjonalność i nie wiesz gdzie błąd, jak znajdziesz błąd, może się okazać, że rzutuje on
#programowanie #testy #tdd #mockito #java

Jak rodzicie sobie z taką sytuacją kiedy chcecie zrobić capture na metodzie post eventbusa i macie różne typy eventów?
Ja robię to tak:
ArgumentCaptor captor = ArgumentCaptor.forClass(Object.class);
verify(eventBus, times(2)).post(captor.capture());
i póżniej castuję.

Czy znacie jakiś lepszy sposób?
@siemanko:

Wydaje mi się, że właśnie tak się to robi (chociaż ten Object to trochę zbyt generyczny typ, nie da się tego zawęzić?) - pobierasz wszystkie 'kapczury', i po kolei castujesz na to, co chcesz.
@fegwegw: Akurat Object to jedyna opcja bo te eventy niczego nie rozszerzają.
Ok, w takim razie dalej będę tak robił. Myślałem, że jest jakiś ładniejszy sposób na to :)
@smaleckg: Zdecydowanie łatwiej będzie z konsoli. Od siebie polecam Mochę, bo ma od razu wbudowaną obsługę wiersza poleceń, do tego można dowolnie i łatwo dawać pluginy (np. istanbul do mierzenie pokrycia) i transpilery (babel, typescript) i to działa, no i przede wszystkim API Jasmine ssie, a w Mocha możesz sobie wybrać. Niemniej jeśli chcesz używać jasmine to instalujesz karmę (koryguję twój post, to jest runner, a nie miernik pokrycia), konfigurujesz, dodajesz
Cześć Mirki !

Jako, że dziś jest Światowy dzień książki, w księgarniach są mega promocje np. helion kup dwie, zapłać tylko za droższa czy matras -30%... także tutaj nachodzi moje pytanie, jakie polecacie książki z programowania, które warto przeczytać? :) odpadają wszelkie propozycje typu "{tu wstaw język progr.} podstawy" tylko coś bardziej zaawansowanego, najlepiej dotyczącego javowych frameworków, narzędzi itd. albo metodyk programowania czy czegoś takiego :)

Aktualnie posiadam i kończę czytać Clean
@Ilythiiri: Niestety. On od początku jest. Jestem programistą C# i głównie w takich obszarach się poruszam. Czasami wrzucam JavaScript czy ogólne wzorce projektowe programistyczne np. z Javy, bo tam też jest dosyć aktywne środowisko (jeśli nie bardziej), ale to dalej pozostaje tag zorientowany na C# i .NET.