Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Adam Gabryś 2012.03.20, v1.1, www.adam.gabrys.biz.

Podobne prezentacje


Prezentacja na temat: "Adam Gabryś 2012.03.20, v1.1, www.adam.gabrys.biz."— Zapis prezentacji:

1 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 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 Definicja interfejsu reprezentującego bazę danych: public interface UserDB { string GetUserName(int id); } Przykład z wykorzystanie biblioteki moq

6 Przykład 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); } Definicja klasy korzystającej z bazy danych:

7 Przykład Definicja metody testowej: [TestMethod] public void GetNameTest() { // utworzenie mocka Mock mock = new Mock (); // ustawienie wartości zwracanej dla wywołania GetUserName(0) na Kowalski mock.Setup(obj => obj.GetUserName(0)).Returns("Kowalski"); // pobranie mocka 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 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, pl/magazine/cc163358%28en-us%29.aspx moq:

10 Dziękuję za uwagę. Pytania?


Pobierz ppt "Adam Gabryś 2012.03.20, v1.1, www.adam.gabrys.biz."

Podobne prezentacje


Reklamy Google