Dzień dobry,
chciałbym zapytać, czy mając zrobić imitacje klasy np. czujnika to w głównej aplikacji powinna być klasa czujnik która go imituje i udostępnia metody pobierz temperaturę itd, czy jednak lepszym rozwiązaniem jest sama metoda np. pobierzTemp(temp) która pobiera temperaturę przekazaną przez imitację czujnika ale już sprawdzane jest to w klasie testującej?
W głównej aplikacji nie powinno być żadnych imitacji. Imitację sobie tworzysz w testach, które z tejże imitacji korzystają.
(O ile istnienie imitacji ma sens, bo zazwyczaj nie ma.)
np. robiąc stacje pogodową chcę imitować czujnik z którego pobieram dane, czyli powinienem zrobić to w testach tak?
No jak będziesz "imitować" odczyty w prawdziwej stacji pogodowej to nie wiem czy ktoś ją kupi :D :D
Może doprecyzuje pytanie, mam pobrać temperaturę jak według was powinno to wyglądać w mojej aplikacji? Według mnie to powinna być funkcja pobierzTemperature() jednak co ma zawierać ciało tej funkcji skoro nie mamy bezpośrednio dostępu do czujnika ? Czy ma być to być funkcja przyjmująca argument który przekazuje temperaturę? Po prostu nie mając dostępu do danego czujnika nie wiem jak napisac funkcje która miałaby sens
Jak nie masz dostępu to pisz testy. Jak będziesz mial to zrobisz integrację. :) A do testów poczytaj sobie o mockowaniu, tak to się fachowo nazywa