AngularJS + Jasmine测试脚本失败fn不起作用

时间:2013-04-26 18:02:09

标签: angularjs jasmine yeoman karma-runner

我正在使用Yeoman创建一个角度项目,并将模块定义为:

angular.module('angularApp')<br />
.controller('LogOutCtrl', function ($scope) {//do stuff});

通过Yeoman测试脚本如下:

describe('Controller: LogOutCtrl', function () {

    // load the controller's module
    beforeEach(module('angularApp', ['ui', 'appSettings']));

    var LogOutCtrl,
        scope;

    // Initialize the controller and a mock scope
    beforeEach(inject(function ($controller) {
        scope = {};
        LogOutCtrl = $controller('LogOutCtrl', {
            $scope: scope
        });
    }));

   it('should pass', function () {
        expect(2+2).toBe(4); //aka some test
   });
});

这是通过grunt / karma返回的错误:

Error: Argument 'fn' is not a function, got string

我已经看过其他一些写这些的方法: How do I test an AngularJS service with Jasmine?

任何帮助都会受到赞赏,因为我是Angular和Jasmine测试的新手。我相信这可能是Yeoman测试脚本模板的一个问题。

谢谢!

1 个答案:

答案 0 :(得分:2)

这是Yeoman正在使用的模板的问题。它们已在1.0 beta更新后得到解决。