6

私は 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.');
  });
},

そして、ポップアップしている失敗:

テストの失敗

4

0 に答える 0