Po 9ciu mc-ach od ostatniego wpisu mój pierwszy kurs wideo ujrzał światło dzienne.

.net_tests

Siemanko

Ostatni mój wpis na tym blogu miał miejsce dziewięć miesięcy temu. Z jednej strony to szmat czasu, z drugiej jednak te miesiące minęły bardzo szybko. Przez ten cały czas dużo pracowałem i przygotowywałem coś co od dawna miałem w swojej liście TODO powiązanej z mojej karierą w programowaniu. Dziś mogę tę pozycję oznaczyć jako wykonaną gdyż to właśnie dziś wraz z wydawnictwami VideoPoint oraz Helion wydałem swój pierwszy kurs wideo na temat testowania oprogramowania w trakcie developmentu w .Net Core. Traktuje to jako uzupełnienie mojego programistycznego CV tak samo jak mój GitHub.

Testowanie oprogramowania w .NET Core 2.0. Kurs video. Poziom pierwszy. Jak pisać dobry, niezawodny i łatwy w utrzymaniu kod

Mam nadzieje, że przypadnie Wam do gustu to w jaki sposób spróbowałem przekazać swoją wiedzę, dotychczasowe doświadczenie i spojrzenie na pisanie kodu i testów.

Jesli jesteście ciekawi jak wygląda praca nad stworzeniem kursu wideo lub chcielibyście również mieć taką publikację na swoim koncie – gorąco zachęcam! Jednak uprzedzam, że jest to znacznie trudniejsze niż się może wydawać na początku. Wymaga to dobrego planu, przygotowania i wytrwałości. Nie spisywałem ilości godzin, które poświęciłem na przygotowanie tego kursu jednak szacuję, że było ich ok 100 – więc wg mnie b. dużo.

Szczegółowy opis jak i spis treści znajdziecie na stronach kursu:

  • na portalu Helion – tutaj
  • na portalu ViedoPoint – tutaj

Jeśli się skusicie – dajcie feeback!

Pjona!

 

Reklamy

Rozpoznawanie kategorii i koloru z tekstu ogłoszenia oraz pierwsze testy jednostkowe w Asp.Net Core 1.0

Siemanko

Jak już wcześniej wspominałem aplikacja mobilna nie będzie wymagała deklarowania kategorii czy koloru ubrania w momencie tworzenia nowego ogłoszenia. Niewątpliwie te dane byłyby bardzo przydatne w celu filtrowania wyników wyszukiwania oraz przy Machine Learning, które miałoby ogarniać najchętniej przeglądane ciuchy przez użytkownika w celu podpowiadania mu tego co mogło by go zainteresować (jeszcze nie ruszyłem z ML, ale mam to w planach ;)). Tą robotą zajmie się system.

Słowniki ze słowami kluczowymi dla kategorii i koloru

Wyrażenia regularne nie wchodzą w grę ponieważ nazwy kategorii i kolorów są przeróżne, więc dla każdej opcji musiałbym napisać oddzielne wyrażenie co przy późniejszej potrzebie modyfikacji okazało by się, że to niezły pain (nie wkurzają Cię te moje angielskie bądź pseudo angielskie wcinki? ;)). Dlatego wymyśliłem to najprościej jak mogłem i opiszę to na przykładzie kategorii.

2

Fragment słownika kategorii

Kluczem jest początek nazwy kategorii, a wartością lista słów pasujących do wzorca z klucza wraz z różnymi odmianami, przy czym pierwszym elementem jest zawsze słowo kluczowe, które będzie wiązane z ogłoszeniami. Taki słownik będę mógł zawsze zmodyfikować dodając kolejne klucze bądź rozszerzając listy wartości dla klucza. Jedynym ograniczeniem będzie tylko to, że nie będę mógł zmienić pierwszych elementów z list wartości bo te będą mogły być już zapisane w bazie.

Rozpoznawanie kategorii i koloru

Najlepiej będzie jak rzucisz okiem na kod.

3

Lecę foreach’em po kluczach danego słownika i sprawdzam czy zawiera się on w tekście ogłoszenia. Jeśli tak to lecę kolejnym foreach’em po wartościach dla danego klucza i sprawdzam czy którykolwiek ze stringów znajduje się w tekście. Jeśli tak to do listy wynikowej przypisuje pierwszy element z listy wartości. W ten sposób wyłapuje hasła kluczowe, które potem są wyciągane z bazy lub zapisywane jeśli jeszcze takich nie było, a następnie wiązane z ogłoszeniem.

Side Waffle, XUnit i Moq – czyli ostre testowanko 😉

Aby sprawdzić czy to co opisałem wcześniej rzeczywiście działa postanowiłem wreszcie napisać pierwsze unit testy. Do tego celu doinstalowałem sobie do VS extension’a Side WaffleJest to paczka z ogromem różnych templatów, o których nie będę pisał prócz jednego – xUnit.

3

Jest to już skonfigurowany pod DNXa projekt testowy z xUnit. Od razu można jechać z testami. Co bardzo ważne – aby uruchomić napisany test trzeba otworzyć Test Explorer’a i zbudować projekt – w innym przypadku VS nie ogarnie, że są jakieś testy.

4

Przykładowy teścik

Nie jestem jakimś szpeniem od testów, ale dzięki dobrociom od xUnit takim jak [Theory], pisząc 18 testów w rzeczywistości mam przetestowane 83 przypadki.

Podsumowanie

Dzięki testom jednostkowym dla rozpoznawaczki słów kluczowych wyłapałem kilka błędów już na etapie jej pisania, które szybciutko poprawiłem 🙂

Unit testy są cool!

Pjona!