Ember RC7:测试路线

时间:2013-08-27 14:26:47

标签: ember.js

我想在我的应用中测试路线设置。 我正在使用Qunit和余烬测试助手。

我有如下测试:

test("visit can handle wrong urls", function() {
    var urlToVisit = "/foo/bogus";
    visit(urlToVisit).then(function () {
        // this will show me /foo/bogus even though the route does not exist
        console.log(app.__container__.lookup('router:main').location.path);
    });
});       

问题是,我无法区分失败和成功访问。 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我不是QUnit专家,但我想你可以采取的一种方法是测试currentPath而不是网址,你可以从ApplicationController得到它,如下所示:< / p>

此测试应通过

test("visit 'index' and assert it exists", function() {
  var urlToVisit = "/";
  visit(urlToVisit).then(function () {
    equal(App.__container__.lookup('controller:application').get('currentPath'), 'index', 'At route index');
  });
});

但这应该失败

test("visit wrong URL and fail", function() {
  var urlToVisit = "/posts";
  visit(urlToVisit).then(function () {
    equal(App.__container__.lookup('controller:application').get('currentPath'), 'posts', 'Fail at non existent route posts');
  });
});

简单demo here

希望它有所帮助。