gpt4 book ai didi

javascript - 单元测试 Angular Controller

转载 作者:行者123 更新时间:2023-11-28 01:33:05 24 4
gpt4 key购买 nike

我有一个名为“小部件”的 Angular 模块。这是我的应用程序中使用的签名:

var app = angular.module('widgets', [
'widget.Panel',
'widget.List',
'services'
]);

我还从 app 创建了一个 Controller :

app.controller('clientListController', ['$scope', '$http', 'ServiceProvider', function ($scope, $http, ServiceProvider) {

我正在尝试为“clientListController”编写单元测试。这是我所做的:

describe('clientListController', function () {
var ctrl, scope;

beforeEach(angular.module('widgets'));
beforeEach(inject(function ($rootScope, $controller) {
scope = $rootScope.$new();
ctrl = $controller('clientListController', { $scope: scope });
}));

it("should define openClient function", function () {
expect(scope.openClient).toBeDefined();
});
});

当我尝试运行测试时,出现错误:

Error: Argument 'clientListController' is not a function, got undefined 

我编写测试的方式有问题吗?为什么 clientListController 没有定义?和依赖有关系吗?

最佳答案

使用 beforeEach(module('widgets'))beforeEach(angular.mock.module('widgets'))。您需要为 Angular-Mocks 设置一个模块来工作。为了方便起见,angular.mock.module 被分配给 window.module。您的代码只是从 Angular 获取模块,而不是将其设置为 Angular-Mocks 使用。

关于javascript - 单元测试 Angular Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21862556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com