问题标签 [moxios]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5652 浏览

javascript - 将 axios POST 请求与 moxios 匹配

是否可以使用 moxios 模拟对 POST 请求的回复,该回复不仅可以通过 URL 匹配,还可以通过 POST 正文匹配?事后检查身体也对我有用。

这就是我现在正在做的事情。据我所知,没有特定于方法的存根方法:

0 投票
1 回答
1285 浏览

javascript - 在 moxios 中指定 response.request.responseURL

我目前正在尝试编写一些需要response.request.responseURL在 axios 处理响应时设置值的功能。但是,我似乎无法使用 moxios 设置此值。这是我的测试的样子:

这是我的实际应用程序的样子:

但是,当我记录这个值是什么时,它只是说undefined. 这就是实际response.request值(将其放在引号中,以便更具可读性):

日志:请求{解决:函数(a){...},拒绝:函数(a){...},配置:对象{适配器:函数模拟适配器(配置){...},transformRequest:对象{0 : ...}, transformResponse: Object{0: ...}, 超时: 0, xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, validateStatus: 函数 validateStatus(status ) { ... },标题:Object{Accept:...,X-CSRFToken:...},方法:'get',url:'my_api_url/',数据:未定义},标题:Object{Accept: 'application/json, text/plain, / ', X-CSRFToken: 'my_csrf_token'}, url: 'my_api_url/', 超时: 0, withCredentials: false, responseType: undefined}

这会破坏我的应用程序,因为responseURL应该始终定义 a。看起来它正在覆盖我在 moxios 中定义的请求。这不一定是坏事,因为我认为它需要这些东西才能正常运行。但是,如果我可以为这个请求添加一些值,那就太好了。

所以; 如何responseURL在 moxios 中为此请求添加值?

0 投票
1 回答
2564 浏览

vue.js - 使用 Moxios 在 Vue 中测试 API 调用

我无法弄清楚如何测试在“已安装”生命周期挂钩中发生的 API 调用。

我有一个文件组件,负责显示有关“所有者”的一些信息。

这完全符合我在浏览器中想要/期望的方式。

对于测试,我使用的是 Karma、Jasmine 和 Avoriaz。

这是一个失败的测试:

上面期望 1,但得到 0。

所以现在我认为我需要以某种方式存根/模拟我的 API 请求。快速的 Google 搜索将我带到 moxios。所以我用 Yarn 安装它并最终想出了这个。我不是 100% 确定将 moxios.stubRequest 放在哪里,但尝试将它放在 beforeAll()、beforeEach() 和“它”内。

```

看来该请求实际上并没有被删除。为了进行故障排除,我在 axios.get() 调用(成功注销)之前放置了一个 console.log 语句,并且我还放置了一个 console.log 来注销响应,但是这个从未出现,这让我认为axios 请求不起作用,并且没有被 moxios“拦截”。

当我运行测试时,我确实看到了 404,但不确定原因:

01 08 2017 12:49:43.483:WARN [web-server]: 404: /principals/12345.json

对我来说,在 的顶部存根请求是最有意义的beforeAll(),但这也不起作用。

我该如何安排,以便 moxios 存根 API 请求并返回,以便我的测试通过?

0 投票
1 回答
16685 浏览

javascript - 使用 Moxios 模拟 Axios 调用以测试 API 调用

我有以下自定义 Axios 实例:

使用相应的服务:

这是对所述服务的测试:

使用 Karma + Jasmine 执行时会引发以下错误:

我想测试的是,当端点/users/{id}/posts被击中时,会发回一个模拟响应。所有这一切都是在使用我的自定义 axios 实例时进行的http

我已经尝试将存根作为 moxios显示文档的第一个示例。但是我认为这不适合我的用例,因为我想检查请求在我的服务中是否正确形成。

我也尝试过使用以下代码,它按预期工作,但是我想测试我的服务(以下代码不这样做):

关于如何修复错误的任何想法?

0 投票
0 回答
102 浏览

reactjs - 测试 Redux 异步操作创建者不调用 .then()

我正在尝试测试 Redux 操作创建者,但无法让返回的承诺的 .then 执行。我正在使用 Moxios 模拟来自 Axios 的 HTTP 请求。这是 Moxios 设置:

这是测试这个动作创建者的规范:

我检查了该操作是否返回了一个承诺,并且没有创建任何错误。有人看到我在这里做错了什么吗?

0 投票
1 回答
752 浏览

unit-testing - 在 vue.js 测试中模拟路由器时避免 vue 警告

我正在测试一个使用 Axios 进行 HTTP 请求的 Vue.js 2 应用程序,并且我正在使用 Moxios 模拟这些请求。该测试也使用 Avoriaz。

我正在测试的页面只是呈现一个元素列表并显示一些使用实现的按钮<router-link>

问题是我在测试中收到了很多警告

错误日志:'[Vue 警告]:未知的自定义元素:<router-link> - 您是否正确注册了组件?

我要测试的页面如下所示(简化):

测试看起来像这样:

如果我添加Vue.use(Router)和相应的导入,警告就会消失,但我的 Moxios 模拟将不再起作用。知道如何摆脱这些警告吗?

0 投票
2 回答
1721 浏览

javascript - 如何模拟 axios.all 请求?

我在嘲笑我的项目时遇到了这堵墙。

我发出一个 axios.all 请求,其中包含 10 个请求。我到底要怎么嘲笑它?

我目前正在使用 moxios 来模拟我的 axios http 请求,但它似乎没有处理这个问题的功能。

例子:

有没有人遇到过这个问题并找到了解决方案?

更新:

我只是单独模拟了每个请求,但这是一个缓慢而痛苦的过程,有没有更快更有效的方法来做到这一点?

0 投票
1 回答
1557 浏览

vue.js - 点击后的Vuejs测试值

我有上面的代码来测试 vue 应用程序中的错误状态。简单地说,我正在尝试测试如果调用服务器时出错,会显示一些文本来说明。我已经在浏览器中手动测试了它,一切都很好,但我无法围绕它进行单元测试。它只是失败了,说expected '...' does not contain Something wrong here

可能与dom尚未更新有关?但我认为这就是 Vue.nextTick 的用途?

0 投票
1 回答
990 浏览

vue.js - 使用 moxios 和 fakeTimers 测试去抖动的异步请求

我正在尝试以去抖方法测试 axios 调用,但如果我添加假计时器, moxios.wait() 总是会超时。如果去抖时间设置得足够小(例如 10 毫秒),则测试可以在没有时钟的情况下进行,但这无助于测试正确的去抖。我已经尝试过使用 Vue.nextTick 以及对 it() 进行异步回调,但我似乎只是进一步深入杂草。这里的正确方法是什么?

这是一个组件和一个测试,它显示了问题:

0 投票
1 回答
4580 浏览

axios - Moxios:如何访问单元测试中不是最新的请求

一个页面在渲染时会发出多个 HTTP 获取数据请求。如何过滤moxios.requests以获取具有特定 URL 的请求以响应?

我可以在网上找到的唯一方法是moxios.requests.mostRecent(),但是我不确定最近的请求是什么。即使这样,还有另一种方法来弹出另一个请求吗?

moxios 库上似乎没有任何关于此的文档:https ://github.com/axios/moxios