Ember + Mirage:响应模拟错误
Posted
技术标签:
【中文标题】Ember + Mirage:响应模拟错误【英文标题】:Ember + Mirage: response mock errors 【发布时间】:2020-09-28 20:25:49 【问题描述】: // 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');
);
我正在使用 Ember 3.16
和 ember-cli-mirage 1.1.8
。我有一个无法正常工作的测试。我在嘲笑海市蜃楼的 422 响应。此响应还包含一些错误。在发出请求的路由器中,请求失败(输入catch
)但是当我检查错误时,它没有告诉我状态代码或它的详细信息
【问题讨论】:
您的应用代码中有 .catch() 吗?您可能会看到 Ember 数据错误 【参考方案1】:查看来自 emberCLI Mirage V1.1.8 的文档,它显示此 example 以测试错误
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');
);
指定错误和状态响应的语法不同
【讨论】:
使用Response
类,记录在here 也是有效的。以上是关于Ember + Mirage:响应模拟错误的主要内容,如果未能解决你的问题,请参考以下文章
Ember cli mirage 错误:补丁处理程序无法读取 null 的属性更新