piotrpo

piotrpo
2018-12-14 06:59

Takie tam kwiatki z repo. W sumie, to bardziej niż ten test w repo przeraża mnie co się będzie działo, jak już ogarną możliwości stwarzane przez te biblioteki.

piotrpo

Nie wiem, trochę wolałbym nie zgadywać jakie były intencje autora.

scibi92

Kolejny raz testowane biblioteki do mockowania?

Julian_

to są unit testy Mockito, nawet nazwa testu o tym mówi, co w tym dziwnego?

piotrpo

Że, nawet jeżeli tak jest, to nie powinny trafić do repozytorium?

scibi92

@piotrpo: niestety repozytoria sa całe pełne testów Mockito. Tylko pod inną nazwa, np. "UserServiceTest". Tak dla niepoznaki

somekind

No i tu widzimy przewagę Javy nad C#.

wioletta90

każde testy nie powinny trafiac do repo ? z jakiego powodu ?

piotrpo

Bo nie każdy kod powinien trafić do repozytorium. Np. dość często sobie piszę właśnie jako testy jednostkowe jakieś proste kawałki kodu, żeby sprawdzić jak działa jakaś tam klasa w jakiejś bibliotece. Taki test nie ma nic wspólnego z testowaną aplikacją. Prawdopodobnie, podobnie było tutaj zresztą.

somekind

Czyli to taka wprawka miała być? Do takich rzeczy to się w ogóle otwiera oddzielnie drugie IDE, albo pisze się takie rzeczy w jakimś REPLu, a nie w kodzie projektu. Abstrahując już od tego, że sam fakt, że taki kod da się napisać, bardzo źle świadczy o umysłach twórców tych narzędzi.

wioletta90

To gdzie powinny być trzymane testy ? Gdy ktoś napisał 50% testów danej aplikacji i przychodzi druga osoba do firmy to na USB jej przekazuje kod ?

piotrpo

Zastanawiałaś się kiedyś po co pisze się testy i kod w ogólności? Ten "test" z przykładu kompletnie nic nie testuje. "Testowana" metoda statyczna String.format() nie jest wywoływana.

scibi92

@wioletta90: chyba nie zrozumiałaś o co chodzi. Te testy nie są testami aplikacji tylko testami jakiejś biblioteki. Takie rzeczy to się robi albo w REPLu albo jako poboczy projekcik...

Wibowit

@wioletta90: Test najpierw ustawia Stringa tak, żeby String.format zwracał "Verified", a potem sprawdza czy String.format zwraca "Verified". Jeśli widzisz w tym sens to gratuluję. No chyba, że test rzeczywiście jest tylko po to by sprawdzić czy PowerMock i EasyMock działają jak należy.

scibi92

@Wibowit: pewno tak jest że test jest po to żeby sprawdzić biblioteki mockujące, ale umieszczanie tego w ropozytorium aplikacji jest ... niemądre ;)

piotrpo
2018-10-09 17:05

Weekly WTF 2

assertEquals(true, true);

Kiedy analiza statyczna ciśnie za bardzo.

jarekr000000

Ładnie. Pokrycie rośnie, asercje są, a i testy stabilne. Czemu na to nie wpadłem?

Leroy

jak polaczysz oba podejscia to faktycznie :)

piotrpo

Tak, sonar, czy inny veracode się czepiał o brak asercji z jednej strony a z drugiej spadło mu pokrycie

WhiteLightning

ja widzialem assertTrue(false), a cel uzycia byl taki ze mial poleciec wczesniej wyjatek i jak polecial to sie nie wywalalo :)

jarekr000000

@WhiteLightning - dawno temu, zanim odkryłem expected w junitcie - używalem throw new ExceptionNotThrownException(). Internet pokazuje, że nie tylko ja.

piotrpo
2018-09-21 17:25

Tygodniowe WTF:
Dyskusja z leadem, że są lepsze metody service discovery niż wpis do centralnego postgresa.
Tłumaczenie się podczas code review z generowanego kodu
I w końcu creme de la creme unit testy z asercjami na stałe, czy aby się nie zmieniły (jeden geniusz chciał mieć pokrycie 75%, a inny nie wiedział, że inicjalizacja stałych się nie łapie do metryki).

jarekr000000

To z asercjami na stałe podoba mi się. Przyswoję technikę :) Co do kodu generowanego to zwykle pytanie jest: co taki kod robi w repo? ( i zwykle odpowiedź : java....). Te serwisy w bazie danych to miodzio. Rozkmniniasz buga na dumpie bazy produkcyjnej i po jakiejś godzinie odkrywasz, że klienci naprawdę dostali tego newslettera o treści: dudu, fudu, asfgh.. Mogło być gorzej.

piotrpo

Trochę Java, trochę lenistwo - long story...