gpt4 book ai didi

javascript - Angular JS UT 验证服务上的方法是否被调用

转载 作者:行者123 更新时间:2023-12-03 06:58:09 25 4
gpt4 key购买 nike

我有一个如下所示的 Controller

(function () {
var newPlaceController = function ($scope, PlacesService, $mdDialog) {

$scope.newPlace = {
"city": "",
"country": ""
};
$scope.addCity = function () {
$scope.places.push($scope.newPlace);
PlacesService.addCity($scope.newPlace);
$mdDialog.hide();
};
$scope.cancel = function(){
$mdDialog.hide();
};
};

angular.module("module.place")
.controller('NewPlaceController', newPlaceController);

}());

我还有一个如下的测试文件,用于测试 newPlace 的初始化值是否正确。代码如下

describe("NewPlaceController", function () {

var $scope, ctrl;

beforeEach(module("module.place"));

beforeEach(
inject(function (_$controller_) {
$scope = {};
controller = _$controller_('NewPlaceController', {
$scope: $scope
});
}));

describe("Initialization", function () {
it("asdasd", function () {
expect($scope.newPlace).toEqual({
city: ''
, country: ''
});
})
});

});

一切正常。我的疑问是如何测试 Controller 中的 addCity 和 cancel 功能。

最佳答案

你可以像这样使用它

it("Should call addCity", function () {
var spy = spyOn(PlacesService, 'addCity');
controller.addCity();
expect(spy).toHaveBeenCalled();
})

it("Should call mdDialog hide", function () {
var spy = spyOn($mdDialog, 'hide');
controller.cancel();
expect(spy).toHaveBeenCalled();
})

关于javascript - Angular JS UT 验证服务上的方法是否被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37180047/

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