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