2017-03-03 10 views
7

Chcę przetestować metodę wyeksportowaną w poniższym kodzie. Chcę wyśmiać wartości w prywatnej metodzie, aby kontrolować odrzucenie/rozstrzygnięcia zwróconej obietnicy. client is node-postgres Obiekt, który jest już podłączony do bazy danych.Jednostka testowa metoda prywatna, która używa żądania, potoku i strumienia przy użyciu próbek

wiem, że mogę używać proxyquire stub z wymaganych bibliotek, ale jak mogę kpić powiązanej metod .on('error', ...), .pipe(stream) i .on('end', ...) takie, że mogę kontrolować zwróconych wartości.

Notatka Pokazana wyeksportowana metoda jest uproszczeniem rzeczywistej i eksportowanie wartości importDomain nie jest możliwe.

Odpowiedz

1

Aby przetestować funkcję importDomain, należy sfałszować zapytanie. Jest to wymagane przez moduł, więc należy go uznać za przetestowany i działający normalnie.

Ponieważ podajesz klienta jako parametr. Metoda zapytania i zwracany strumień są już w pełni kontrolowane z modułu.

Po prostu przez zastąpienie polecenia req.pipe, będziesz w stanie kontrolować, co jest przekazywane do strumienia utworzonego przez twojego klienta.

+0

W jaki sposób są testowane .on()? Chciałbym zobaczyć przykłady kodu pokazujące, jak można to zrobić. – Brian

+0

Po fałszywym żądaniu, zaimplementuj je jako zapisywalny strumień i zapisz do niego dane podczas testowania. zobacz http://stackoverflow.com/questions/33141012/how-to-mock-streams-in-nodejs –

Powiązane problemy