gpt4 book ai didi

javascript - 在 Jasmine 中测试 Promise 并没有解决 - 让 Expected undefined 成为对象

转载 作者:行者123 更新时间:2023-12-02 14:25:40 25 4
gpt4 key购买 nike

我是测试新手,正在使用 jasmine 测试一些 Angular 代码。我创建的模拟 promise 没有解决。这是我正在测试的代码块:

    $scope.init = function() {
EngageService.getGrouping($stateParams.gid).then(function(res) {
$scope.grouping = res.data;
$scope.parent_id = $scope.grouping.parent != null ? $scope.grouping.parent.id : null;
$scope.startDate = $scope.grouping.startDate ? new Date($scope.grouping.startDate) : new Date()
$scope.endDate = $scope.grouping.endDate ? new Date($scope.grouping.endDate) : new Date()
$scope.nda = $scope.grouping.nda == "No" ? false : true;
$scope.grouping.invitation = $scope.grouping.invitateOnly == true ? 'true' : 'false';
$scope.canManageGrouping = UserService.memberships[$scope.grouping.id].role.canManageGrouping;
$scope.canCreateGroup = UserService.memberships[$scope.grouping.id].role.canCreateGroup;
})
EngageService.getProjects().then(function(res) {
$scope.projects = res.data.rows;
})
}

这是测试 promise 的代码

describe('Tests for WorkspaceEdit', functio
var getGroupingPromise;

beforeEach(function() {
module('iq4App');
return inject(function($injector) {
this.EngageService = {
getGrouping: function(gid) {
getGroupingPromise = $q.defer();
console.log(getGroupingPromise.promise)
return getGroupingPromise.promise;
}
};
this.scope = this.rootScope.$new();
this.scope.$digest();
}); '$upload': this.upload,
'ResourceService': this.ResourceService,
'MatchService': this.MatchService
});
this.scope.$digest();
});


});


});

it('should set stuff on init', function() {

var fakeData = {
data: {
parent: {
id: 3
}
}
}

this.scope.init();
this.scope.$digest();
getGroupingPromise.resolve(fakeData.data)
expect(this.scope.grouping).toBe(fakeData.data);


})

});

我正在尝试将一些虚假数据解析为 $scope.grouping,但数据解析为未定义。我知道 promise 是从我的 console.log 在 this.EngageService 的 getGrouping 方法中创建的。我删除了很多我认为不相关的代码,但如果您需要更多详细信息,请告诉我。

谢谢!

最佳答案

您需要使用虚假数据解决 promise :

getGroupingPromise = $q.defer();
getGroupingPromise.resolve(fakeData.data);
return getGroupingPromise.promise;

关于javascript - 在 Jasmine 中测试 Promise 并没有解决 - 让 Expected undefined 成为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38272633/

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