我们试图用茉莉花测试角度控制器。角度已经到位,我们对它和茉莉花都是新的。jasmine.Clock.tick(500)给出TypeError:'undefined'不是函数(评估'jasmine.Clock.tick(500)')
使用以下:
- AngularJS 1.2.2
- 茉莉2.0.0
- VS 2013
这里是控制器
angular.module('workforce.App').controller('ClockController', ['$scope', '$timeout', function ClockCtrl($scope, $timeout) {
(function update() {
$scope.dt = new Date();
//----------------------------------------------------------------------
// Auto-refreshes the clock every 5 seconds to stay current
//----------------------------------------------------------------------
$timeout(update, 5000);
}());
}]);
这里是规格
/// <reference path="../../scripts/jasmine.js" />
/// <reference path="../../../webclient/scripts/angular.js" />
/// <reference path="../../../webclient/scripts/angular-resource.js" />
/// <reference path="../../../webclient/scripts/angular-mocks.js" />
/// <reference path="../../../webclient/angular/app.js" />
/// <reference path="../../../webclient/angular/homebase/common/clockcontroller.js" />
/// <reference path="../../../webclient/scripts/api/api.date.js" />
/// <reference path="../../../webclient/scripts/ui-bootstrap-0.10.0.js" />
/// <reference path="../../../webclient/scripts/checklist-model.js" />
describe('clock', function() {
var scope, timeout, createController;
beforeEach(function() {
angular.mock.module('workforce.App');
inject(function ($rootScope, $controller, $injector) {
scope = $rootScope.$new();
timeout = $injector.get('$timeout');
//jasmine.Env({});
jasmine.Clock.install;
$controller = $injector.get('$controller');
createController = function() {
return $controller('ClockController', {
'$scope': scope,
'$timeout': timeout
});
};
});
});
afterEach(function() {
jasmine.Clock.uninstall;
});
it('scope.dt should contain value', function() {
createController();
expect(scope.dt).toBeTruthy();
});
it('scope.dt should contain value 2', function() {
createController();
var date1 = scope.dt;
jasmine.Clock.tick(500);
expect(scope.dt).toBeGreaterThan(date1);
});
});
以下是错误消息
测试名称:时钟scope.dt应包含数值2 试验全名:C:\根\次世代\项目\分期\溶液\应用\ webclient.angular.test \ homebase \ common \ clockcontrollerspec.js :: clock :: scope.dt应该包含值2 测试来源:c:\ root \ nextgen \ projects \ staging \ solution \ applications \ webclient.angular.test \ homebase \ common \ clockcontrollerspec .js:第43行 测试结果:失败 测试持续时间:0:00:00.003
结果消息:TypeError:'undefined'不是函数(评估'jasmine.Clock.tick(500)')在file:/// c:/root/nextgen/projects/staging/solution/applications/webclient.angular.test/ homebase/common/clockcontrollerspec.js(第46行) at file:/// c:/root/nextgen/projects/staging/solution/applications/webclient.angular.test/homebase/common/clockcontrollerspec.js:46 at attemptSync(file:/// C:/USERS/MWHEELER/APPDATA/LOCAL/MICROSOFT/VISUALSTUDIO/12.0/EXTENSIONS/HLHI1U1O.3O4/TestFiles/jasmine/v2/jasmine.js:1510) at file:/// C :/USERS/MWHEELER/APPDATA/LOCAL/MICROSOFT/VISUALSTUDIO/12.0/EXTENSIONS/HLHI1U1O.3O4/TestFiles/jasmine/v2/jasmine.js:1498 at file:/// C:/ USERS/MWHEELER/APPDATA/LOCAL /MICROSOFT/VISUALSTUDIO/12.0/EXTENSIONS/HLHI1U1O.3O4/TestFiles/jasmine/v2/jasmine.js:1485 at file:/// C:/ USERS/MWHEELER/APPDATA/LOCAL/MICROSOFT/VISUALSTUDIO/12。 0 /扩展/ HLHI1U1O.3O4/TestFiles /茉莉/ V2/jasmine.js:518
问:
- 为什么不为我们打勾工作?
- 有没有更好的方法来做到这一点?
- 如果我们使用jasmine.Clock.install(),我们也会得到一个未定义的错误,为什么会这样呢?
编辑 当我做jasmine.Clock()。安装(),我的两个测试失败,出现以下错误。
测试名称:clock scope.dt应包含值 测试全名:c:\ root \ nextgen \ projects \ staging \ solution \ applications \ webclient.angular.test \ homebase \ common \ clockcontrollerspec.js :: clock: :scope.dt应该包含值 测试源:c:\ root \ nextgen \ projects \ staging \ solution \ applications \ webclient.angular.test \ homebase \ common \ clockcontrollerspec。js:line 37 测试结果:失败 测试持续时间:0:00:00.009
结果消息:TypeError:试图分配给只读属性。 (file:/// c:/ root/nextgen/file /项目/ staging /解决方案/应用程序/ webclient /脚本/角度mocks.js:2107) 在文件://///根/下一步/项目/ staging /解决方案/应用程序/ webclient /脚本/角度模拟。 js:2090 at file:/// c:/root/nextgen/projects/staging/solution/applications/webclient.angular.test/homebase/common/clockcontrollerspec.js:30 at attemptSync(file:/// C :/USERS/MWHEELER/APPDATA/LOCAL/MICROSOFT/VISUALSTUDIO/12.0/EXTENSIONS/HLHI1U1O.3O4/TestFiles/jasmine/v2/jasmine.js:1510) at file:/// C:/ USERS/MWHEELER/APPDATA/LOCAL/MICROSOFT/VISUALSTUDIO/12.0/EXTENSIONS/HLHI1U1O.3O4/TestFiles/jasmine/v2/jasmine.js:1498
当我这样做,我得到一个不同的错误。我将用这个信息编辑我的问题。 –
请注意,时钟()是全部小写字母,您在您的问题中有时钟 –
我已将时钟更改为时钟并添加了(),并且我没有收到任何错误。我的测试没有通过,但我怀疑滴答不更新我的控制器中的时间。 –