[ten post jest częścią mojego minicyklu o testach, pełna lista postów: tutaj] Przeglądając kod wielu projektów, zarówno komercyjnych jak i open source, można spotkać całą masę konwencji nazewniczych stosowanych do klas i metod testujących. Dzisiaj przedstawię kilka moich zasad w tej materii wraz z uzasadnieniem. Wychodzę z założenia, że bardziej niż konwencja, standard czy "przyjęta dobra praktyka" liczy się czytelność pisanego kodu i łatwość powrotu do niego nawet po kilku miesiącach...
[More]
Na dzień dzisiejszy wybierając "mocking framework" stawiam właśnie na fakeiteasy. Ma ona jeden ciemny zakamar, w którym można nieźle pobłądzić... a jest to testowanie wywołania settera. Załóżmy, że mamy jakiś interfejs wymuszający na implementacjach posiadanie właściwości Age: 1: public interface IHaveAge
2: {
3: int Age { get; set; }
4: }
I test "jakiejś klasy" przetwarzającej implementacje tego interfejsu, mającej ustawić wartość wspomnianej wł...
[More]
Niedawno po raz pierwszy w życiu musiałem mockować implementację interfejsu IEnumerable<T>. Chodziło o jakieś dziwne struktury używane wewnętrznie przez FIM. Problem polegał na tym, że obiekt mockowanego przeze mnie typu zwracał kolekcję innych obiektów. Ta kolekcja była właśnie IEnumerable<X>... ale nie mogłem stworzyć jej instancji, ponieważ wspomniana klasa XCollection była abstrakcyjna, a jej implementacja siedziała zaszyta gdzieś wewnątrz jakichś dllek. Jednocześnie chciałem prz...
[More]
[ten post jest częścią mojego minicyklu o testach, pełna lista postów: tutaj] Odpowiedź na pytanie postawione w tytule to temat nie na posta, ale na całą (może nawet niejedną) książkę. Poniżej postaram się nakreślić najważniejsze według mnie aspekty tworzenia testów... chociaż na pewno lista ta nie jest kompletna. Aha, no i nie jestem w stanie podać niezawodnej recepty na "dobry test". Zgłębiam temat od dobrych kilku lat i sam ciągle się uczę, więc cudów nie ma - praktyka i identyfik...
[More]
[ten post jest częścią mojego minicyklu o testach, pełna lista postów: tutaj] Moment pisania testów jest nierzadko kluczowy dla zmaksymalizowania efektywności całej procedury. Po kilku chwilach zastanowienia da się wyróżnić kilka najważniejszych etapów tworzenia oprogramowania, które z reguły są odpowiednią chwilą do implementacji testu. TDD Oczywisty pierwszy punkt w temacie "kiedy pisać testy?" brzmi: "przed napisaniem właściwego kodu". W praktyce, na co dzień, sto...
[More]
[ten post jest częścią mojego minicyklu o testach, pełna lista postów: tutaj] W komentarzach do ostatniego posta wywiązała się dyskusja na temat "a co z metodami prywatnymi?". Odpowiedź najkrótsza z możliwych brzmi: NIC. Zainteresowanych odsyłam do tamtejszych wypowiedzi, a w niniejszej notce postaram się zawarte tam myśli rozwinąć. Zaczynając przygodę z testami jednostkowymi często stawałem przed dylematem "jak mam przetestować funkcjonalność z metod prywatnych?". Sporo si...
[More]
Dzisiejsze krótkie kazanie dalej w temacie testów. Krótkie, bo... nie mam nic do dodania do przytoczonego cytatu. Częstym argumentem przeciwko inwestowaniu w pisanie testów jest "ale to zajmuje dużo czasu!". Nie ma co się rozwodzić i wymyślać mądrych mądrości, poniższe pytanie mówi wszystko: Would you rather Test-First or Debug-Later? Źródło: Robert C. Martin (z Twittera @CodeWIsdom)