0

我想在我的应用程序中测试路线设置。我正在使用 Qunit 和 ember-testing 助手。

我有如下测试:

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);
    });
});       

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

4

1 回答 1

0

我不是 QUnit 专家,但我想您可以采取的一种方法是测试currentPath而不是 URL,您可以从 中获取它ApplicationController,如下所示:

这个测试应该通过

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');
  });
});

简单的演示在这里

希望能帮助到你。

于 2013-08-27T16:07:42.050 回答