2016-04-08 19 views
0

をテストするには? 私は受け入れテストを使用してみましたが、私は成功しませんでした:どのように私は簡単にするために、以下のように見える私のルータをテストしたいと思いますEmber.Router

import Ember from 'ember'; 
import { test } from 'qunit'; 

import moduleForAcceptance from 'transformed-admin/tests/helpers/module-for-acceptance'; 

import startApp from 'transformed-admin/tests/helpers/start-app'; 

moduleForAcceptance('Acceptance | configuration', { 
    beforeEach: function() { 
    this.application = startApp(); 
    }, 

    afterEach: function() { 
    Ember.run(this.application, 'destroy'); 
    } 
}); 

test('should map routes correctly', function(assert) { 
    visit('/'); 

    const app = this.application; 

    andThen(function() { 
    app.Router.detect("profile"); // false 
    app.Router.detect("Profile"); // false 

    const a = app.Router.extend({}); 
    a.detect("profile"); // false 
    a.detect("Profile"); // false 
    }); 
}); 

ここでのベストプラクティスは何ですか? Router.map()は全くテストしていますか?または、Router.map()が正しく書かれていることを保証するために具体的なルートのテストに頼っていますか?

+3

[currentUrl](http://emberjs.com/api/classes/Ember.Test.html#method_currentURL)と[currentPath](http://emberjs.com/api/classes/)を確認する受け入れテストEmber.Test.html#method_currentPath)は十分以上であるべきです –

+0

ありがとうございます@Kitler – Pavol

答えて

0

あなたが何をしたいのかは不明です。あなたは、彼らが表示されていることを確認する場合は、各ルートのためacceptance testsを書くことができ:

import { test } from 'qunit'; 
import moduleForAcceptance from 'people/tests/helpers/module-for-acceptance'; 

moduleForAcceptance('Acceptance | login'); 

test('visiting /', function(assert) { 
    visit('/'); 

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

test('visiting /profile', function(assert) { 
    visit('/profile'); 

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

またunit tests for your routesを書くことができます。

Ember.jsの内部をテストしないでください。 Ember.Router is covered by tests。アプリケーション固有のロジック(たとえば、ユニットテストによるルート内の特定のアクションの処理)と動作(受け入れテストによって特定のルートが存在するeq)をテストする必要があります。

+0

私の目標は、テストすることでした: 'Router.map()'関数。 – Pavol

+0

@ Pavol私は、あなたが 'Router.map()'のようなフレームワーク内部をテストすべきではなく、あなたの実装であることを明確にするために答えを更新しました。 – jelhan

+0

ありがとう、@ jelhan。私の質問にはすでにこの事実が含まれていたので、あなたの答えからわかりました。 "またはあなたは具体的なルートのテストに頼っていますか?" 今私は自分の実装をテストするのが十分であると知っています;-) – Pavol

関連する問題

 関連する問題