javascript - Ember + Mirage:响应模拟错误
问题描述
// Some code from router
return user.save().catch(e => {
debugger; // says: ErrorClass {isAdapterError: true, stack: "Error: The adapter rejected the commit because it was invalid}
});
// Test
import { Response } from 'miragejs';
test('Show error page when failed uniqueness validation', async function(assert) {
server.post('/users', () => {
return new Response(422, {}, { errors: [{ detail: 'has already been taken' }] });
});
await visit('/users/new?email=test@email.com');
});
我正在使用 Ember3.16
和 ember-cli-mirage 1.1.8
。我有一个无法正常工作的测试。我在嘲笑海市蜃楼的 422 响应。此响应还包含一些错误。在发出请求的路由器中,请求失败(进入catch
)但是当我检查错误时,它没有告诉我状态代码或它的详细信息
解决方案
查看 emberCLI Mirage V1.1.8 的文档,它显示了这个示例来测试错误
test('the user sees an error if the save attempt fails', async function(assert) {
this.server.post('/questions', () => ({
errors: [ 'The database went on vacation' ]
}), 500);
await visit('/');
await click('.new');
await fillIn('input', 'New question');
await click('.save');
assert.dom('h2').hasText('The database went on vacation');
});
指定错误和状态响应的语法不同
推荐阅读
- python - 使用小部件更新 Gmaps + Jupyter 中的标记
- php - Sinch Voice Callback REST API - 使用 PHP 作为电话会议的回调 URL
- c++ - 确保删除链表的所有元素
- javascript - 如何匹配 dropzone 表单上的文件名?
- php - woocommerce-如何仅在商店页面上显示子类别?
- javascript - 如何防止用户两次问同一个问题?
- linux - Linux Perf_Events 中的 LLC-Miss 报告
- javascript - javascript代码没有检测到值的变化
- c# - 如何绑定一个集合
GridControl WPF的字段? - google-apps-script - 通过 Google Apps 脚本比较新来电者和重复来电者的电话号码