私は Ember Data を使用している ember-cli アプリを持っており、フォームを送信して質問するという失敗のケースをカバーする受け入れテストを作成しようとしています。テストでは、エラー オブジェクトを返すためにPretenderを使用して応答をモックし、送信が失敗したことを知らせるメッセージがユーザーに表示されることをアサートしています。
エラーメッセージが表示されるかどうかをチェックする、私が書いた実際のアサーションは合格です。問題は、 の失敗も受け取っていることですError: The backend rejected the commit because it was invalid: {title: can't be blank, body: can't be blank}
。
テスト中にこのエラーを黙らせる方法はありますか? 私はこれに間違ってアプローチしていますか? この場合、実際にはエラーではありません。それが私がカバーしようとしていることなので、バックエンドはコミットを拒否する必要があります。
テストは次のとおりです。
test('errors are displayed when asking question fails', function() {
server.post('/api/v1/questions', function(request) {
var errors = {
title: ["can't be blank"],
body: ["can't be blank"],
};
return jsonResponse(422, { errors: errors });
});
authenticateSession();
visit('/questions/new');
click('button:contains("Ask")');
andThen(function() {
ok(hasContent('There were some errors with your question.'),
'Error message displayed');
});
});
そして、トリガーされている関連アクション:
save: function(model) {
var _this = this;
model.save().then(function() {
_this.transitionTo('questions.show', model);
}, function() {
_this.wuphf.danger('There were some errors with your question.');
});
},
そして、ポップアップしている失敗: