gpt4 book ai didi

unit-testing - 如何在 Jasmine 中测试 Angular Controller 的本地变量

转载 作者:行者123 更新时间:2023-12-03 20:31:00 24 4
gpt4 key购买 nike

我有一个带有局部变量的 Controller

function IndexCtrl($scope) {
var pagesById = [];
loadPages();

// snip

function loadPages() {
// pagesById gets populated
}

// snip
}

我想测试 pagesById 是否正确填充,但我不确定如何从我的 it() 中获取它。我不需要这个变量在 $scope 中,它只是一组中间信息,所以如果我可以避免将它添加到 $scope 中,那将是理想的。
it('scope.pages should populated based on pages data.', function() {
$httpBackend.flush();
expect(pagesById).toEqualData(mock_page_results);
});

给我
ReferenceError: pagesById is not defined

除了将它附加到 $scope 之外,我还有其他选择吗?

最佳答案

在您的 jasmine 规范中,首先创建 Controller :

var ctrl;

beforeEach(inject(function($rootScope, $controller) {
scope = $rootScope.$new();
ctrl = $controller('myController', {
$scope: scope
});
}));

然后你可以通过做 ctrl.pagesById 来访问它的属性。 .当然,而不是做 var pagesById您需要使用 this.pagesById在您的 Controller 中。

关于unit-testing - 如何在 Jasmine 中测试 Angular Controller 的本地变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14269139/

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