Javascript 如何测试使用whatwgfetch和mocha的代码?
我正在我的应用程序中使用,它运行良好,但我想用摩卡和巴贝尔测试我的代码,因为我正在编写ES2016 这不是开箱即用的。我得到:Javascript 如何测试使用whatwgfetch和mocha的代码?,javascript,testing,mocha.js,fetch,Javascript,Testing,Mocha.js,Fetch,我正在我的应用程序中使用,它运行良好,但我想用摩卡和巴贝尔测试我的代码,因为我正在编写ES2016 这不是开箱即用的。我得到: 1) testApi.js Test api error handling: ReferenceError: fetch is not defined at callApi (callApi.js:10:10) at Context.<anonymous> (testApi.js:8:40) 1)testApi.js测试api错误处理: Refe
1) testApi.js Test api error handling:
ReferenceError: fetch is not defined
at callApi (callApi.js:10:10)
at Context.<anonymous> (testApi.js:8:40)
1)testApi.js测试api错误处理:
ReferenceError:未定义提取
在callApi(callApi.js:10:10)
在上下文中。但api略有不同,例如,它需要完整的url而不是相对路径
有解决这个问题的方法吗?我能够使用节点获取
模块让摩卡测试使用三元数据:
// Support server-side fetch for tests.
let fetch = (typeof window === 'undefined')
? require('node-fetch')
: window.fetch
;
因此,如果将来有人遇到此问题:
- 使用
- 使用webpack时,请确保您的目标设置为“web”
在index.js或其他根文件中导入“同构提取”
在任何调用fetch的测试文件(或根测试文件,如果有的话)中导入“同构fetch”
- 您的测试现在将使用node fetch,您的网页包现在将构建whatwg fetch
你想用Node测试你的代码吗?我真的不在乎,但我已经用Chai编写了我所有的断言,目前正在使用Mocha运行。我在写ES2016,所以巴贝尔需要在管道中的某个地方传输它。听起来你在使用一个全局获取(由你的浏览器提供的),或者网页包为你全球化它。如果您使用类似的东西并使用适当的const fetch=require(…)
,您应该能够测试客户端和服务器端,并在两侧都可以访问fetch()
。@Tieme您解决了这个问题吗???不,我没有..您可以在您的package.json中安装同构fetch和,将测试命令设置为“mocha--require isomorphic fetch”