使用 jasmine return 错误检查 $scope 变量
Check $scope variable with jasmine return error
目前正在尝试检查非常简单的 angular 变量和函数。我连最简单的工作都做不到。这是我第一次使用它,我需要使用旧版本,因为我的讲师需要它。
在 app.js 中,我有很多控制器,但我只从一个控制器开始,一个变量分配给一个字符串:
var app = angular.module('myApp', ['ngRoute']);
blah blah blah etc etc
app.controller('HomeController', function ($scope) {
$scope.name = 'Batman';
}
在 runner.html 文件中我有以下内容:
<script src="lib/jasmine-2.2.0/jasmine.js"></script>
<script src="lib/jasmine-2.2.0/jasmine-html.js"></script>
<script src="lib/jasmine-2.2.0/boot.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src='https://code.angularjs.org/1.4.8/angular-mocks.js'></script>
<!-- include source files here... -->
<script src="../js/main.js"></script>
<!-- include spec files here... -->
<script src="spec/test.js"></script>
在 test.js 我有以下内容:
describe('myApp', function () {
var scope, controller;
beforeEach(angular.mock.module('myApp'));
beforeEach(angular.mock.inject(function($controller,$rootScope){
scope = $rootScope.$new();
$controller('HomeController', {$scope: scope});
}));
it('sets the name', function () {
expect(scope.name).toBe('Batman');
});
});
然后当我 运行 测试时出现以下错误:
错误:[$injector:modulerr]
编辑
似乎是 angular 路由导致了问题。当我删除路由模块 'ngRoute' 时,它似乎可以正常运行。 jasmine 有路由的方法吗?
这个问题是你没有包含 angular-route
库,尽管它是一个模块依赖项 (angular.module('myApp', ['ngRoute'])
)。
我添加了以下内容以及其他库:
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular-route.min.js"></script>
它正在运行!
目前正在尝试检查非常简单的 angular 变量和函数。我连最简单的工作都做不到。这是我第一次使用它,我需要使用旧版本,因为我的讲师需要它。
在 app.js 中,我有很多控制器,但我只从一个控制器开始,一个变量分配给一个字符串:
var app = angular.module('myApp', ['ngRoute']);
blah blah blah etc etc
app.controller('HomeController', function ($scope) {
$scope.name = 'Batman';
}
在 runner.html 文件中我有以下内容:
<script src="lib/jasmine-2.2.0/jasmine.js"></script>
<script src="lib/jasmine-2.2.0/jasmine-html.js"></script>
<script src="lib/jasmine-2.2.0/boot.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src='https://code.angularjs.org/1.4.8/angular-mocks.js'></script>
<!-- include source files here... -->
<script src="../js/main.js"></script>
<!-- include spec files here... -->
<script src="spec/test.js"></script>
在 test.js 我有以下内容:
describe('myApp', function () {
var scope, controller;
beforeEach(angular.mock.module('myApp'));
beforeEach(angular.mock.inject(function($controller,$rootScope){
scope = $rootScope.$new();
$controller('HomeController', {$scope: scope});
}));
it('sets the name', function () {
expect(scope.name).toBe('Batman');
});
});
然后当我 运行 测试时出现以下错误: 错误:[$injector:modulerr]
编辑
似乎是 angular 路由导致了问题。当我删除路由模块 'ngRoute' 时,它似乎可以正常运行。 jasmine 有路由的方法吗?
这个问题是你没有包含 angular-route
库,尽管它是一个模块依赖项 (angular.module('myApp', ['ngRoute'])
)。
我添加了以下内容以及其他库:
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular-route.min.js"></script>
它正在运行!