2017-01-04 2 views
2

Ich habe folgendes Beispiel Test:Prüfung holt mit Mokka und chia

import { assert } from 'chai' 

function starWarsMovies() { 
    fetch('http://swapi.co/api/films/') 
    .then((res) => { 
     return res.json() 
    }) 
    .then((res) => res.count) 
} 

describe('Get star war movies',() => { 
    it('should get 7',() =>{ 
    assert.equal(starWarsMovies(), 7) 
    }) 
}) 

Aber ich

ReferenceError: fetch is not defined 

bekommen, was ich verwenden, um eine Anfrage holen zu testen.

UPDATE


ich auch versucht:

import { polyfill } from 'es6-promise' 
import fetch from 'isomorphic-fetch' 

aber dann bekomme ich:

AssertionError: expected undefined to equal 7 

und ich verstehe nicht, warum.

+0

Versuchen Sie dies https://mochajs.org/#asynchronous-code? –

Antwort

1

Sie testen wahrscheinlich Ihre Code-Server-Seite mit node.js.

fetch ist kein Teil von Node, sondern ist eine Web-API, die Sie mit neueren Browsern bekommen und von JavaScript aus in einem Browser laufen lassen können.

Sie müssen importieren Knoten-Fetch, wie unten skizziert, und es wird funktionieren:

npm install node-fetch --save 

und in Ihrem Code:

const fetch = require("node-fetch") 
... 

Wenn Sie in (einem älteren Browser ausgeführt wird nicht unterstützt fetch) und benutzt kein Tool wie Webpack, sondern Sie müssen die Polyfills aus Ihrem HTML auf die alte "traditionelle Art" einfügen.