Podejmuję pierwsze kroki z MsTest i Moq i chciałbym przetestować klasę repozytorium Linq2SQL. Problem polega na tym, że nie chcę, aby testy jednostkowe nieustannie modyfikowały moją bazę danych programowania.Jednostka testująca repozytorium LINQ2SQL
Jakie byłoby najlepsze podejście do tego scenariusza?
- Niech każdy test działać na mojej bazy rozwoju rzeczywistym, ale upewnij się, że każdy test sprząta po sobie
- utworzyć duplikat mojej bazy rozwojowej i dbml dla testów jednostkowych i użyć tego kontekstu, zamiast więc mogę usunąć cała baza danych przed każdym uruchomieniem testu
- Znajdź jakiś wymyślny sposób kpienia z Datacontext (proszę pamiętać, że jestem totalnym Moq noob).
- Coś zupełnie innego? Być może coś, co zautomatyzuje konfigurowanie bazy danych dla mnie przed każdym uruchomieniem testu?
Edit: Właśnie dowiedziałem się, że MbUnit posiada atrybut wycofywania że odwraca żadnych operacji na bazie danych prowadzonej przez przypadek testowy. Nie jestem szczególnie przywiązany do MSTest, więc czy to może być łatwa odpowiedź na mój problem?
Yup, to co ja też zrobiłem. To i utworzyłem testy integracyjne, które przebiegły w bazie danych. Linq to Sql jest całkiem niezłe pod tym względem - możesz nukeować i tworzyć bazę danych bezpośrednio z kontekstu danych. – Will