2012-02-10 7 views
8

Czy ktoś ma przykład testu jednostkowego w CSLA. Trudno jest wdrożyć TDD z tymi ramami i zastanawiałem się, czy są na to proste sposoby. Czy istnieje inny Mock Framework, który mogłem wykorzystać oprócz Izolatora TypMock, który jest darmowy do zbudowania mojego obiektu testowego? Proszę, jeśli masz jakieś sugestie i próbki/przykłady, byłbym zachwycony? Dziękuję Ci.Testowanie jednostek w CSLA? W jaki sposób? Co?

Odpowiedz

8

Nie jestem pewien, czy mówię ci jakieś nowe informacje, ale z CSLA 4 łatwiej jest przetestować niestandardowe BusinessRules i jeśli używasz repozytoriów jako warstwy danych, możesz kpić z repozytoriów, aby przetestować obiekty biznesowe wraz z frontem za ich pomocą. Pamiętaj tylko, że obiekty biznesowe to niewiele więcej niż kilka obiektów z właściwościami, w których powinieneś używać reguł biznesowych do implementacji logiki biznesowej. Te reguły biznesowe to tylko zajęcia, które możesz bez problemu testować w jednostce.

Wszystko zależy od tego, jaka jest twoja infrastruktura. Czy używasz wzoru IoC?

Którą wersję CSLA używasz?

Czy używasz CSF ObjectFactory's?

Jeśli używasz CSLA, ponieważ powinno być używane, będziesz miał statyczne metody fabryczne i masz niepubliczny konstruktor. Jeśli nadal chcesz przetestować te właściwości w ramach BusinessObjects, możesz wybrać jedną z opcji.

  1. Jeśli używasz IoC dla dataLayer (repozytoria), a następnie można drwić i przetestowanie tych obiektów biznesowych poprzez skonfigurowanie MKOl z mocks i króćców aw TestMethod wywołać metody fabrycznych i wykonać test.

  2. Jeśli nie korzystasz z IoC, możesz mieć szczęście, jeśli wybrałeś rozwiązanie CSLA ObjectFactory - tam możesz użyć mocks i stubów.

  3. Jeśli nie korzystasz z IoC i nie korzystasz z ObjectFactory, nie możesz tak łatwo testować obiektów biznesowych. Ale nadal jest to możliwe, rejestrując niestandardowy DataPortal. Wewnątrz DataPortal można użyć odbicia, aby skonstruować obiekt biznesowy i rozwiązać niektóre makiety/kody pośredniczące dla tego określonego obiektu biznesowego. To nie jest łatwe, ale jest wykonalne.

Przepraszamy, ale nie mam żadnych przykładów.