Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałZachariasz Piekacz Został zmieniony 10 lat temu
1
Test Doubles Adam Gabryś , v1.1,
2
Plan prezentacji Wstęp: Co to jest „Test Double”?
Rodzaje „Test Double” Przykład Podsumowanie
3
Wstęp Obiekty symulujące określone zachowanie Ułatwiają testowanie:
Wyeliminowanie implementacji nadmiarowego kodu Uniezależniają testy od środowiska zewnętrznego Umożliwiają przeprowadzenie dokładniejszych testów, np. weryfikacja wywołań
4
Rodzaje „Test double” Dummy Stub Spy Fake Mock Bez implementacji
Potrzebne przy wywoływaniu operacji z parametrami Stub Implementacja metod zwracających wartości Spy Weryfikacja wywołań Fake Zaimplementowane interakcje pomiędzy składowymi Mock Dynamicznie implementowany
5
Przykład Przykład z wykorzystanie biblioteki moq
Definicja interfejsu reprezentującego bazę danych: public interface UserDB { string GetUserName(int id); }
6
Przykład Definicja klasy korzystającej z bazy danych:
public class Simple { private int m_id; private UserDB m_db; public Simple(int id, UserDB db) m_id = id; m_db = db; } public string GetName() return m_db.GetUserName(m_id);
7
Przykład Definicja metody testowej: [TestMethod]
public void GetNameTest() { // utworzenie mock’a Mock<UserDB> mock = new Mock<UserDB>(); // ustawienie wartości zwracanej dla wywołania GetUserName(0) na „Kowalski” mock.Setup(obj => obj.GetUserName(0)).Returns("Kowalski"); // pobranie mock’a UserDB db = mock.Object; Simple target = new Simple(0, db); string expected = "Kowalski"; string actual = target.GetName(); Assert.AreEqual(expected, actual); // weryfikacja, czy metoda GetUserName z parametrem id = 0 // została wywołana tylko raz mock.Verify(obj => obj.GetUserName(0), Times.Once()); }
8
Wysoka jakość tworzonego oprogramowania!!!
Podsumowanie Przyspieszenie implementacji testów Uniezależnienie testów od środowiska zewnętrznego Dokładniejsza kontrola nad przepływem sterowania (metody weryfikacyjne) Wysoka jakość tworzonego oprogramowania!!!
9
Bibliografia Unit Testing – „Exploring The Continuum Of Test Doubles”, moq:
10
Koniec Dziękuję za uwagę. Pytania?
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.