Jea*_*ean 5 javascript testing mocha.js chai fetch-api
我有以下示例测试:
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)
})
})
Run Code Online (Sandbox Code Playgroud)
但我得到
ReferenceError: fetch is not defined
Run Code Online (Sandbox Code Playgroud)
我必须使用什么才能测试提取请求。
更新
我也尝试过:
import { polyfill } from 'es6-promise'
import fetch from 'isomorphic-fetch'
Run Code Online (Sandbox Code Playgroud)
但后来我得到:
AssertionError: expected undefined to equal 7
Run Code Online (Sandbox Code Playgroud)
我不明白为什么。
您可能正在使用 Node.js 在服务器端测试您的代码。
fetch不是节点的一部分,而是一个 Web-API,您可以通过较新的浏览器获得,并且可以在浏览器中运行的 JavaScript 中使用。
您需要如下所示导入node-fetch ,它将起作用:
npm install node-fetch --save
Run Code Online (Sandbox Code Playgroud)
并在您的代码中:
const fetch = require("node-fetch")
...
Run Code Online (Sandbox Code Playgroud)
如果您正在运行(不支持 fetch 的旧浏览器)并且没有使用像 webpack 这样的工具,则必须以旧的“传统方式”包含 html 中的 polyfill。
| 归档时间: |
|
| 查看次数: |
7397 次 |
| 最近记录: |