所以我有一个现有的团队项目,需要有测试覆盖率。该项目使用的是npm和angularJS。我开始在jquery上进行npm安装,以及jasmine和angular-mocks。我认为一个好的,简单的起点(没有太多的测试经验)将与路由。我在这里定义了一些非常基本的路由
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when("/",
{ templateUrl: "partials/home/home.html",
controller: "PageCtrl"
})
// else 404
.otherwise("/404",
{ templateUrl: "partials/404.html",
controller: "PageCtrl"
});
}]);
我开始写测试。从网上获得的一个非常简单的例子开始
describe('Route testing', function () {
beforeEach(module('tutorialWebApp'));
it('should route accordingly', inject( function ($route) {
expect($route.routes['/'].controller).toBe('PageCtrl');
expect($route.routes['/'].templateUrl).toEqual('partials/home/home.html');
}));
});
我收到类型错误:模块不是一个函数,指向我的beforeEach行。我研究了这个问题,我找到的解决方案都没有让我取得任何进展。任何帮助将不胜感激
答案 0 :(得分:0)
beforeEach 接受回调函数。您的代码正在调用模块函数,该函数显然不会返回函数。您对模块的调用必须包含在回调函数中。像这样:
beforeEach(function(){
module('tutorialWebApp');
// some other code
});