2016-09-27 21 views
5

Mam interfejs API funkcji Loopback z modelem Student.Testowanie jednostki dla modelu sprzężenia zwrotnego

Jak pisać testy jednostkowe dla metod API węzłów w węźle modelu Student bez wywoływania interfejsu API REST? Nie mogę znaleźć żadnej dokumentacji ani przykładów do testowania modelu za pomocą samego API węzła.

Czy ktoś może pomóc?

+1

Dla kontekstu: Dokumenty Strongloop naprawdę nie tłumaczą testowania i szukanie go w "teście strongloopjs" dostarcza tylko takich artykułów: https://strongloop.com/strongblog/how -to-test-an-api-z-węzłem-js/który testuje aplikację za pomocą HTTP API, zamiast wykonywać testy jednostkowe samych modeli. –

Odpowiedz

4

Przykład z testowania metody

// With this test file located in ./test/thistest.js 

var app = require('../server'); 

describe('Student node api', function(){ 
    it('counts initially 0 student', function(cb){ 
     app.models.Student.count({}, function(err, count){ 
     assert.deepEqual(count, 0); 
     }); 
    }); 
}); 

count ten sposób można przetestować API węzła, bez zawijania API REST.

Jednakże, w przypadku metod wbudowanych, te rzeczy zostały już przetestowane przez strongloop, więc powinny być całkiem bezużyteczne do testowania interfejsu API węzła. Ale dla metod zdalnych (= niestandardowych) nadal może być interesująca.

EDYCJA: Powodem, dla którego ten sposób robienia rzeczy nie jest wyjaśniony, jest fakt, że ostatecznie należy przetestować kompletny interfejs API REST, aby upewnić się, że nie tylko interfejs API węzła działa zgodnie z oczekiwaniami, ale także że listy ACL są poprawnie skonfigurowane. , kody powrotu itp. Ostatecznie kończysz pisanie 2 różnych testów dla tego samego, co jest stratą czasu. (Chyba że lubisz pisać testy :)

+0

Dzięki za odpowiedź, ale jest jeden problem z kodem podanym powyżej. Do testów jednostkowych, nie chcę używać mojego rzeczywistego db. Chcę używać w pamięci db. A więc w takim razie jak tworzyć dane w pamięci? i jak dodawać użytkowników, dostęp do tokenów w bazie danych w pamięci? Również chcę używać przed każdym hakiem, aby wstawić rekordy w tabeli ucznia. Tak, że mogę uzyskać pewną wartość. Mam nadzieję, że to wyjaśni więcej o moim problemie. –

+0

Nie można go odgadnąć, ale utworzenie bazy danych w pamięci jest bardzo łatwe (patrz [tutaj] (https://docs.strongloop.com/display/public/LB/Memory+connector)). I jest przejrzyste dla ciebie, bez względu na to, czy używasz pamięci, czy prawdziwego db. – Overdrivr

+0

Aby dodać użytkowników, tokeny dostępu, itp. Wystarczy użyć interfejsu API węzła, który jest udokumentowany w podanym przeze mnie linku. Tutaj znowu: http://apidocs.strongloop.com/ – Overdrivr