当前位置:  开发笔记 > 编程语言 > 正文

相对URL作为Nock中的主机名

如何解决《相对URL作为Nock中的主机名》经验,为你挑选了1个好方法。

我需要模拟客户端HTTP请求.我isomorphic-fetch在客户端使用mocha,我正在使用并nock进行测试和嘲笑.我的所有客户请求都基于相对路径.由于这个原因,我无法提供主机名nock.有工作吗?

客户端:

fetch('/foo') //hostname: http://localhost:8080
.then(res => res.json())
.then(data => console.log(data))
.catch(e => console.log(e))

测试套件

nock('/')
.get('/foo')
.reply(200, {data: "hello"})

这是失败的,因为我没有给出正确的主机名nock.难道我做错了什么?



1> 0xRm..:

对于任何感兴趣的人:在我的react/webpack项目中,我通过在设置为' http:// localhost '时将fetch url添加到前面来解决这个问题.NODE_ENV'test'

例:

const testing = process.env.NODE_ENV === 'test';
const apiUrl = `${testing ? 'http://localhost' : ''}/api`;

function getStuffFromApi() {
  return fetch(apiUrl, ...)
}

这样,在我的测试中,我总是可以像这样使用nock:

nock('http://localhost')
  .get('/api')
  .reply(200, {data: 'hello'})

注意:运行我的测试时,NODE_ENV设置为'test'

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有