W moim kodzie od czasu do czasu przekazywane są różne tablice bajtów i takie. Mogą to być również obiekty zarządzane. Chciałbym zachować te struktury pamięci, aby móc pisać przypadki testowe na konkretnych przykładach.Jak zachować bazę danych w pamięci, aby później użyć jej w teście jednostkowym
Moje standardowe podejście polega na trafieniu w punkt przerwania, skorzystaniu z debuggera w celu znalezienia różnych wartości, a następnie albo dodaniu ich do nowego lub osadzeniu pliku lub czegoś w zespole testowym jednostki jako zasobu. Czasami wymaga to napisania mojej własnej abstrakcji interakcji z komponentem, aby mój kod był zależny od czegoś, co może być nowe.
Czy jest łatwiejszy sposób? Nie mogę sobie wyobrazić, że to coś nowego. Powiedzmy, że dostałeś centralę ogniową, z którą możesz się komunikować. Grasz się z nim, aby wyprodukować datagramy, które chcesz utworzyć dla testów jednostkowych. Ponadto, gdy napotkasz błąd z powodu nieudokumentowanego sposobu, w jaki centrala przeciwpożarowa komponuje swoje złożone wiadomości, chcesz nagrać i zachować te przykłady.
Idealnie chciałbym móc nagrać wszystkie interakcje z moim kodem, a następnie wybrać i wybrać różne scenariusze odtwarzania. Ale właśnie pobranie różnych przykładów datagramów z pamięci do debuggera i umieszczenie ich w testach jednostkowych bardzo mi pomogłoby.
Wszelkie sugestie?
+1 Nie jest to zła sugestia, ale wymaga tego, aby typy były serializowane –
@ Mark, to było naprawdę przeznaczone dla części, w której mówi o zapisywaniu/ładowaniu żądań/odpowiedzi, które wymienia z systemem zewnętrznym - więc myślę o prostych przedmiotach. Nie polecałbym przechodzenia do pozostałych testów z tym samym podejściem. – eglasius
Rzeczywiście. Nie pozwolę, aby szczegóły komunikacji ujawniły się w warstwie usług. Mam określone jednostki biznesowe (biblioteki klas), które zajmują się szczegółami komunikacji i są to ich testy. Pomiędzy komunikacją a logiką biznesową istnieje warstwa abstrakcji. Dziękuję Ci. – Tormod