2016-11-23 4 views
0

Wir verwenden JS-Data, JS-Data-Http zur Interaktion mit Service in angular2-Anwendung. Problem beim Testen der Einheit. Könnte jemand erklären, wie man ein Mock-Objekt für JS-Data-Http erstellt?Unit Testing für JS-Daten

+1

Bitte geben Sie Details zur Verwendung von JS-Daten in der A2 App an. Ein bisschen Code ist notwendig. Ich denke, der Weg, um es testbar zu machen, besteht darin, A2's 'Http' zu verpacken (wie es im A1 Adapter gemacht wird) (https://github.com/js-data/js-data-angular/blob/master) /src/index.js#L60-L72). Aufgrund der Tatsache, dass "Http" Observables verwendet und js-data-http verspricht, sollte der Wrapper sie in Versprechen umwandeln, um A1s "$ http" API nachzuahmen. Standardmäßig verwendet js-data-http [axios] (https://github.com/mzabriskie/axios), was nicht sehr überprüfbar ist. – estus

+0

Für Komponententests auf Clientseite, wenn Sie einen Webservice benötigen, der Ihr eigenes Datenmodell als Dummydaten bereitstellt, können Sie [Rest Ipsum] (https://restipsum.com) verwenden. – scetiner

Antwort

0

Unit-Tests sollten keine externen Ressourcen erfordern, wie REST-Services. Um eine Antwort für findAll zu verhöhnen, würden Sie etwas wie den folgenden Code tun. Stellen Sie sicher, dass Sie die JSData-Mocks eingefügt haben, andernfalls wird eine HTTP-Anfrage erstellt und Sie sehen Fehler aufgrund einer unerwarteten Anfrage.

DS.expectFindAll('task') 
    .respond([{"id": 1, "title": "Task 1"},{"id": 2, "title": "Task 2"}]);