Na stronie Wskazówka: Jeśli połączenie jest konfigurowalny, zmniejszyć limit czasu połączenia ciąg do 1 sekundy - to ułatwi. Wypełnij tabelę wieloma danymi, a 3 inne procesy zakręcają w pętli aktualizując fragmenty tej tabeli z transakcją wokół pętli. Nie zmieniaj rzeczywistej procedury wywoływanej przez aplikację (wstrzykiwanie waitfor). To unieważnia test integracji.
Ale tak naprawdę jest to studium przypadku na korzyść testów jednostkowych i zastrzyku zależności. Niektóre rzeczy są trudne do testu integracyjnego. Test jednostkowy + dependency injection.
- Prawdziwe: Kod, który craps -> Limit czasu bazy danych (trudny do odtworzenia).
- Refactor: Kod że kości -> Repository (ma dostępu do danych tylko) -> Database
- Test Jednostka: kod, który Kości>Mock repository rzucać -> NULL
- Teraz masz uszkodzoną test kodu kości i może to naprawić.
To jest zastrzyk "zależny". Dev może wstrzyknąć zależność do bazy danych, zastępując coś, co symuluje zachowanie zależności. Dobrze zrobić dla wszystkich testów bazy danych. W każdym razie, z testem jednostkowym, wiesz, że poprawka robi coś, co powinna, ale nadal potrzebujesz testów integracyjnych. W takim przypadku lepiej skupić się na regresji - co oznacza, że testowanie nie spowodowało niczego innego, a funkcja nadal działa.
Utworzono już poprawkę, więc sądzę, że moja odpowiedź jest za późna.
Głosowano za prostotę odpowiedzi. Przetestowałem to i działa – Mikel
Zapełniłem tabelę i tworzenie złożonych zapytań rekursywnych, buffów, nonsensu. To załatwia sprawę. – DanielV