2010-02-02 12 views
5

Pracowałem nad wewnętrzną strukturą, która została zaprojektowana przy użyciu kilku modułów Perla. Wszystkie te moduły są zależne od pojedynczego modułu, który ujawnia pewną funkcjonalność Win32. Dla np. Moduły A, B, C, D itd. Zależą od pojedynczego modułu Z. Zatem wszystkie te moduły będą importowane przez "use MyFramework :: Z". Wszystkie te moduły A, B, C itp. Mogą być używane pojedynczo &, nie są zależne od żadnych innych modułów.Jak zaprojektować testy jednostek dla wielu modułów Perla w tej samej dystrybucji?

Teraz, mając na uwadze ten prosty projekt - w jaki sposób zaprojektować testy jednostek. Planuję użyć Test :: More, aby wykonać wszystkie testy jednostkowe. Czy powinienem napisać indywidualne testy jednostkowe dla każdego modułu? Istnieje 25 różnych modułów, które należą do tej struktury. Jakieś sugestie?

+0

Dziękujemy za wszystkie sugestie. – John

Odpowiedz

6

Jednostkowe testy dla Z powinny obejmować funkcjonalność Win32.

Testy jednostkowe dla A powinny obejmować funkcjonalność A, która nie jest objęta Z. Powtórz dla B, C, D i tak dalej.

Jeśli okaże się, że C, E i G robią podobne rzeczy i piszesz prawie identyczne testy jednostkowe, które jest sygnałem byłaby - wyodrębnić wspólne komponenty do wyższego poziomu (np moduł CEG) i po prostu zostaw i przetestuj specjalne części C, E i G w swoich oryginalnych modułach.

1

Istnieje kilka rzeczy, które możesz zrobić:

  1. zacząć pisać je! ;)
  2. Jeden test na moduł (zgodnie z sugestią) i spróbuj przetestować "tylko" kod, który testujesz. (Brzmi to oczywiste, ale łatwo jest zacząć myśleć o interakcjach z innymi modułami)
  3. sprawdzeniu testów moduły na CPAN dla przykładów
  4. Przeczytaj o BDD i TDD
2

W ogóle, to bym zacząć od wdrożenia testy funkcjonalności niskiego poziomu i przetestowanie modułów, które są niezależne od siebie w oddzielnych plikach.

Jeśli uważasz, że ważne jest, aby móc przetestować swój kod niezależnie od środowiska Win32, utwórz kod modułu (specjalnie do testów), który emuluje interfejs modułu specyficznego dla systemu Win32. Oświadczenie package wraz z kilkoma okrojonymi funkcjami może sprawić, że wszystko będzie dobrze, w zależności od tego, co faktycznie robi prawdziwy moduł.

Powiązane problemy