编程语言
首页 > 编程语言> > JavaScript-使用Mocha和Chai测试抓取

JavaScript-使用Mocha和Chai测试抓取

作者:互联网

我有以下示例测试:

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)
  })
})

但是我得到

ReferenceError: fetch is not defined

为了测试提取请求,我必须使用什么.

更新

我也尝试过:

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

但是我得到:

AssertionError: expected undefined to equal 7

我不明白为什么.

解决方法:

您可能正在使用node.js在服务器端进行测试.

提取不是节点的一部分,而是Web API,您可以通过较新的浏览器获得它,并且可以从在浏览器中运行的JavaScript中使用.

您需要按如下所示的方式导入node-fetch,它会起作用:

npm install node-fetch --save

并在您的代码中:

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

如果您正在运行(较旧的浏览器不支持提取),并且未使用webpack之类的工具,则必须使用旧的“传统方式”在html中包含polyfills.

标签:mocha,testing,fetch,javascript,chai
来源: https://codeday.me/bug/20191026/1936085.html