2013-08-27 37 views
0

我想在我的应用程序中测试路线设置。 我正在使用Qunit和烬测试助手。Ember RC7:测试路线

我有类似下面的测试:

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

的问题是,我无法在失败和成功的访问加以区分。 任何想法?

回答

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

简单demo here

希望它有帮助。