1

cli mirage をモックサーバーとして使用して、ログインページの受け入れテストを試みていました。Mirage で定義されたルートは、アプリケーションからアクセスするときに正常に機能します。しかし、ember test で試してみると、返されます

Mirage: Ember アプリが「http://localhost:4200/tests?module=Acceptance | login' ですが、この要求を処理するために定義されたルートがありませんでした。mirage/config.js ファイルで、このパスに一致するルートを定義します。名前空間を追加するのを忘れましたか?

受け入れテスト

test('visiting /login', function(assert) {
  server.create('login', { username: 'xxx@test.com', password: 'password' });
  visit('/login');

  fillIn('input[placeholder="Email"]', 'xxx@test.com');
  fillIn('input[placeholder="Password"]', 'password');
  click('button.btn-primary');

  andThen(function() {
    assert.equal(currentURL(), '/route');
  });
});

ミラージュ/設定

import Mirage from 'ember-cli-mirage';
export default function() {
this.post('/token', function(db, request) {
  var params = formEncodedToJson(request.requestBody);

  if(params.username === "xxx@test.com && params.password === "password") {
    return {
      "auth":"Pass$Word",
      "token_type":"bearer"
    };
  } else{
    var body = { errors: 'Email or password is invalid' };
    return new Mirage.Response(401, {}, body);
  }
});

この問題を修正するにはどうすればよいですか? 誰か助けてください。

4

1 に答える 1

1

問題は環境構成にあります。テスト用に構成を定義した後、正常に機能しました。

于 2016-03-14T10:54:03.083 に答える