2011-10-18 11 views

Odpowiedz

13

obojętne nie jest naprawdę do niczego przez samego FakeItEasy, jest jedynie sposobem na tworzenie fikcyjnych przypadków, które można wykorzystać w badaniach.

Na przykład, powiedzmy, że chcesz przetestować następujące klasy:

public class Foo 
{ 
    public void Bar(DateTime someDate); 
} 

Teraz w jednym z testów, który chcesz wywołać metodę bar, ale wartość, która jest przekazywana do niego nie jest ważne testy, zamiast pisać:

foo.Bar(new DateTime(2000, 1, 1)); 

można napisać:

foo.Bar(A.Dummy<DateTime>()); 

sygnalizuje, że wartość naprawdę nie jest ważna dla testu, więc cały powód jej użycia jest lepszy w intencji komunikowania się.

+1

To wciąż brzmi jak Zignorowany do mnie. Jaka jest różnica w użyciu? – cecilphillip

+0

Próbowałem tego sam; używanie A.Dummy <> w A.CallTo(). MustHaveHappened() nie powoduje przyjęcia żadnej wartości jak A <>. Poza tym, nie wiem. –

+0

Nie mogę naprawdę zobaczyć, co jest niejasne. Zdajesz sobie sprawę, że klasa Foo w powyższej klasie jest testowana, a nie fałszywe? A.Dummy tworzy fałszywą wartość, to wszystko. Nie można go używać podczas konfigurowania połączeń. –

4

@ Odpowiedź Popatara Hägne'a opisuje, w jaki sposób użytkownicy mogą używać manekina, ale jest jeszcze jedna część tej historii. FakeItEasy korzysta z Dummies.

Kiedy FakeItEasy musi utworzyć instancję klasy Fake (lub czasami inną instancję klasy Dummy) przez wywołanie jednego z konstruktorów klasy, a konstruktor pobiera argumenty, użyje on Dummies dla argumentów.

Zachęcam do zapoznania się z Dummies documentation.