Cześć,
Chciałbym napisać unit testy dla asynchronicznego klienta MQTT. Załączam link z kodem dla zobrazowania:
godbolt
Klasa Connection docelowo będzie implementacją biblioteki mosquito. Założeniem jest, że klasa połączenia będzie miała wątek przetwarzający operacje asynchroniczne, stąd metoda Run() uruchamiana za wysłaniem requesta o połączenie (tutaj metoda Connect()). Metoda Client::Connect() musi być blokująca ze względu na dalsze wykorzystanie klienta w programie, jednak przez prawdopodobnie zrąbany design dla unit testów nie jestem w stanie wywołać
@Parseval
1. W ciele testu definiujesz promise.
2. Związany z nim future zwracasz z metody Connect().
3. Przy mockowaniu metody Run() musisz zdefiniować akcję która ustawi wartość promise.
  • Odpowiedz
Hey,

Ostatnio podczas pisania unit testów naszło mnie na refleksje i mam przeczucie, że spierniczyłem design projektu, ale do rzeczy. Stworzyłem strukturę gdzie foldery są podzielone na funkcjonalności, a w każdym takim folderze są pliki źródłowe i CMakeLists tworzący z nich bibliotekę, która linkowana jest do głównego targetu projektu. Załóżmy, że istnieje klasa MqttClient i klasa MqttConnection, która impelemntuje interfejs. W unit testach tworzę mocka tego interfejsu co jest oczywiste, ale pojawia
MqttClient i klasa MqttConnection, która impelemntuje interfejs. W unit testach tworzę mocka tego interfejsu co jest oczywiste, ale pojawia się problem, żeby do głównego targetu testów dolinkować wcześniej wspomnianą bibliotekę z uwagi na to, że ona kompiluje implementację tego interfejsu czego w testach być nie powinno.


@Parseval: nie ma czegoś takiego, że "w testach tego być nie powinno". Testujesz tak jak uważasz, że jest stosownie. Testowanie interfejsu, który w 100% produkcyjnych
  • Odpowiedz
Nie, mam jeden folder tests pod którym mam pliki z testami do modułów i foldery z cmakami, które są okrojone o źródła implementacji interfejsów.


@Parseval: trochę słabo, testy powinny być przy module. Dobrą metryką modularności jest ile folderów muszę przenieść, żeby przenieść cały moduł do innego projektu. Jak wszystko siedzi w jednym folderze/podfolderach odpowiedzialnych za dany moduł to jest idealnie
  • Odpowiedz
@GeDox: W takim wypadku mockujesz funkcję zapisu do bazy danych i nie wykonujesz zapytania tylko sprawdzasz czy poprawny typ danych przyszedł i odpowiednie operacje się wykonały
  • Odpowiedz
@GeDox: Jeżeli chcesz sprawdzać bazę to musisz pisać zapytania ręcznie. Jeżeli nie chcesz pisać zapytań ręcznie to rozwiązanie podrzucił @Hepar. Mockowanie funkcji zapisu do bazy i sprawdzanie przed zapisaniem czy przyszło wszystko ok.
  • Odpowiedz
SZKOŁA TESTÓW JEDNOSTKOWYCH – Start Zapisów

Cześć! Wystartowały zapisy do programu Szkoła Testów Jednostkowych dla Młodszych Programistów C#/.NET. W tym filmie poznasz więcej szczegółów, opowiem o tym, czym w ogóle jest Szkoła Testów Jednostkowych. Dowiesz się również dla kogo jest to szkolenie i co otrzymasz po dołączeniu

Link do filmu: https://www.youtube.com/watch?v=2PCscTetk8M

#programowanie #programista #nauka #naukaprogramowania #programista15k #csharp #dotnet #testyjednostkowe #unittest #tdd #szkolenia
kazik- - SZKOŁA TESTÓW JEDNOSTKOWYCH – Start Zapisów

Cześć! Wystartowały zapisy do...

źródło: comment_1629724755plieGjTFemGAooDVvPgysb.jpg

Pobierz
TEST DRIVEN DEVELOPMENT – Wprowadzenie do TDD na przykładzie w C#

Cześć! Właśnie pojawił się nowy odcinek na YouTube. Tym razem przedstawię temat TDD, czyli Test Driven Development w C#. Będzie bardzo praktycznie, zaimplementujemy prosty algorytm zgodnie z zasadami TDD (red, green, refactor). Miłego oglądania

Link: https://www.youtube.com/watch?v=Rqe7Y86sRJc

#programowanie #programista #nauka #naukaprogramowania #programista15k #csharp #dotnet #testyjednostkowe #unittest #tdd
kazik- - TEST DRIVEN DEVELOPMENT – Wprowadzenie do TDD na przykładzie w C#

Cześć! ...

źródło: comment_16293789973uk4sScbQgf1aYw1sihlmI.jpg

Pobierz
  • Odpowiedz
TESTY INTEGRACYJNE W C# – Testujemy Operacje na BAZIE DANYCH

Cześć! Właśnie pojawił się nowy odcinek. Tym razem pokaże Ci jak testować operacje na bazie danych. Wprowadzę Cię w temat testów integracyjnych. Napiszemy też pierwsze testy integracyjne w C#. Miłego oglądania

Link: https://www.youtube.com/watch?v=TS_VOEksLxo

#programowanie #programista #nauka #naukaprogramowania #programista15k #csharp #dotnet #testyjednostkowe #unittest
kazik- - TESTY INTEGRACYJNE W C# – Testujemy Operacje na BAZIE DANYCH

Cześć! Właśn...

źródło: comment_1628774240lLNJl4ohCCI2sNLLZ8FYlr.jpg

Pobierz
  • Odpowiedz
TESTY JEDNOSTKOWE W C# – WPROWADZENIE do MOCKOWANIA DANYCH

Cześć! Nowy odcinek na kanale modestprogrammer na youtube jest już dostępny. W tym odcinku pokaże Ci jak pisać bardziej zaawansowane testy jednostkowe w C#. Dowiesz się w jaki sposób mockować dane i pozbywać się zewnętrznych zależności w kodzie. Miłego oglądania

Link: https://www.youtube.com/watch?v=RFWaFmin3H8

#programowanie #programista #nauka #naukaprogramowania #programista15k #csharp #dotnet #testyjednostkowe #unittest #mock #mockowanie
kazik- - TESTY JEDNOSTKOWE W C# – WPROWADZENIE do MOCKOWANIA DANYCH

Cześć! Nowy od...

źródło: comment_1628514549PusxfpCodGCK3pSw1wQiHM.jpg

Pobierz
TESTY JEDNOSTKOWE w C# w PRAKTYCE

Cześć! Nowy odcinek na kanale modestprogrammer na youtube jest już dostępny. W dzisiejszym odcinku napiszemy testy jednostkowe do algorytmu, który napisaliśmy kilka tygodni w aplikacji kółko i krzyżyk w C#. Miłego oglądania

Link: https://www.youtube.com/watch?v=3IOEcp0iiQY

#programowanie #programista #nauka #naukaprogramowania #programista15k #csharp #dotnet #testyjednostkowe #unittest
kazik- - TESTY JEDNOSTKOWE w C# w PRAKTYCE

Cześć! Nowy odcinek na kanale modestpro...

źródło: comment_16281699799WnuwGo9ye5ytBz7pMqp09.jpg

Pobierz
  • Odpowiedz
TESTY JEDNOSTKOWE w C# – 100% Tego, Co Musisz O Nich Wiedzieć

Cześć! Nowy odcinek na kanale modestprogrammer na youtube jest już dostępny. Tym razem przedstawię Ci szczegółowo czym są i jak pisać testy jednostkowe w C#. Przedstawię 5 najważniejszych punktów opisujących jak takie testy powinny wyglądać. Będzie bardzo praktyczne, napiszemy też kilka testów jednostkowych. Miłego oglądania

Link: https://www.youtube.com/watch?v=ZS95nEXU4-I

#programowanie #programista #nauka #naukaprogramowania #programista15k #csharp #dotnet #testyjednostkowe #unittest
kazik- - TESTY JEDNOSTKOWE w C# – 100% Tego, Co Musisz O Nich Wiedzieć

Cześć! Nowy...

źródło: comment_1627987528JKExlaQv31kn6Z5vRwKIB2.jpg

Pobierz
  • Odpowiedz
Cześć,
Jak piszecie unit testy pod soft, który jest dedykowany dla innej architektury? W moim przypadku robię development na Ubuntu z x86 pod płytkę ARMową z RTOSem, problem jest taki, że nawet chcąc oddzielić logikę pod unit testy od warstwy RTOSa, to i tak potrzebuję skompilować całość. Czy problem jest głównie w mojej architekturze kodu czy jest na to jakieś sprytne obejście?

#embedded #linux #cpp #programowanie #programista15k #unittest
Czy problem jest głównie w mojej architekturze kodu czy jest na to jakieś sprytne obejście?


@Parseval: w architekturze. Nie wydzieliłeś rzeczy specyficznych dla danej platformy. Potem robisz dwie implementacje tej części linux i rtos.
  • Odpowiedz
@Parseval: W architekturze. Kod powinienenś mieć napisany w taki sposób, żeby tylko najniższa warstwa zależała od systemu, a reszta była uniwersalna. Wtedy w testach to co jest "OS specific" mockujesz i jest bajka.

Plus dzięki takiej architekturze raz, że masz łatwiej przenieść kod na inny procesor/system, dwa, że możesz sobie napisać implementację tej najniższej warstwy pod Ubuntu (emulując oczywiście hardwarowe rzeczy), tym samym ułatwiając sobie cały development.
  • Odpowiedz
Mam problem ze zrozumieniem #kunit #unittest . Dokumentacja w zasadzie zaczyna się od uzywania ./tools/testing/kunit/kunit.py run. Ja nie widzę skąd to w ogole mam wziać.

Ogolnie to wydaje mi sie ze czegoś nie rozumiem od samego poczatku. Robie driver na X86_64 i builduje go na swojej maszynie. Czy w takim układzie mogę uruchomić te KUnit testy, czy muszę miec sciągniete zrodla kernela?

#linux #programowanie
  • Odpowiedz
#programowanie #typescript #unittest

Wyobraźmy sobie, ze jest klasa w Typescript o nazwie UserTypeGetter
Jest odpowiedzialna za połączenie z zewnętrznym api i pobraniem tablicy (json) z typami użytkowników.

Czy jeżeli napiszemy test do tej klasy który sprawdza czy zwrócona tablica posiada jakieś wyniki to czy wtedy czasem nie jest tak ze to już nie jest Test Jednostkowy ? (Bo opiera się na kodzie związanym z backendem)
via Wykop Mobilny (Android)
  • 0
@michal_szn: El classico - to zależy jeżeli przepychasz dane z backendu do frontu gdzies dalej to chyba nie ale jak robisz jakieś mapowanie/normalizacje danych to już tak. W takim wypadku być może rozwiązaniem jest wyekstrachowanie mappera i wtedy możesz go łatwo przetestować unitowo f(dane z API)=>dane które oczekuje front-end
  • Odpowiedz
@michal_szn nie no to zależy co nazywasz jednostką, ale masz rację że to już bardziej test integracyjny, mógłbyś do tej klasy dostarczyć jakoś klienta http i zwracać jakieś fejkowe wyniki, wtedy to będzie na pewno bliżej testu jednostkowego
  • Odpowiedz
Testy Jednostkowe Dla Młodszych Programistów .NET w Praktyce.

Zbieramy zapisy do 9-tygodniowego programu. W skład Szkoły Testów Jednostkowych wchodzi:
✅9-Tygodniowy Program Szkoła Testów Jednostkowych
✅Dostęp Do Aktualizacji Materiałów Oraz Nowych Materiałów
✅Dodatkowe Materiały Pomocnicze PDF
✅Praktyka - Dużo Pracy Domowej
✅Dostęp Na Żądanie 24/7
✅Sprawdzanie Pracy Domowej
✅Analiza Twojej Pracy Przez Prowadzącego
✅Moduł Bonusowy: Testy Integracyjne w ASP.NET Web Api
✅Moduł Bonusowy: Test Driven Development w ASP.NET Web Api

Szczegóły: https://szkolatestowjednostkowych.pl/

#
kazik- - Testy Jednostkowe Dla Młodszych Programistów .NET w Praktyce.

Zbieramy za...

źródło: comment_15965252671kdm2n3yfk31NpgUHvpnoH.jpg

Pobierz
Pisz Niezawodny Kod - Testy Jednostkowe Dla Młodszych Programistów .NET

Już 3 sierpnia odbędzie się darmowe szkolenie online dla młodszych programistów C#/.NET na temat testów jednostkowych.

Poruszane tematy:
➡ 7 Zalet Pisania Testów Jednostkowych
➡ 7 Błędów Początkujących Podczas Pisania Testów Jednostkowych
➡ Lepsze Testy Jednostkowe Dzięki FluentAssertions
➡ TDD - Test Driven Development
➡ Jak Testować Operacje Na Bazie Danych?

Bonusy:
➡ Dokument PDF - Jak definiować mocki? Definiowanie mocków za
kazik- - Pisz Niezawodny Kod - Testy Jednostkowe Dla Młodszych Programistów .NET

J...

źródło: comment_1595908845OwaKN2Hm8Gmi2QTvzmXqBP.jpg

Pobierz
@kazik-:

Testy Jednostkowe dla Programistów C#

Jakie powinny być testy jednostkowe?

#1 Powinny być wykonywane w izolacji bez zewnętrznych zależności.
#2 Testy jednostkowe powinny być powtarzalne i niezawodne.
#3 Testy jednostkowe powinny być szybkie.
#4 Testy jednostkowe powinny być łatwe, czytelne, jeżeli się nie powiodą, to błąd powinien być łatwy do znalezienia.
#5 Jest napisany z użyciem frameworka do testów jednostkowych.

Więcej: https://www.modestprogrammer.pl/100-procent-tego-co-musisz-wiedziec-o-testach-jednostkowych

#programista #programista15k #programowanie #testowanieoprogramowania #unittest
kazik- - @kazik-: 

 Testy Jednostkowe dla Programistów C#

 Jakie powinny być te...

źródło: comment_15813985266m5eutLli0BMXVX28hdw8o.jpg

Pobierz
@kazik-: nijakie. Testy są po to, żeby testować oprogramowanie. Wprowadzanie nazw takich jak testy jednostkowe tylko tworzy zamieszanie
  • Odpowiedz