我想在我的应用中测试路线设置。 我正在使用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);
});
});
问题是,我无法区分失败和成功访问。 有什么想法吗?
答案 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。
希望它有所帮助。