gpt4 book ai didi

javascript - 测试不在服务内的异步函数

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

如果我有一个指令从作用域中获取一个函数,并且该函数是异步的,我该如何测试它?例如

angular.module('myApp').factory('AsyncService',() => {
return {
async: // function that returns a promise
}
})

angular.module('myApp').directive('asyncDirective', () => ({
scope: { async: = },
link: scope => {
scope.async.then(//do something)
}
}));

angular.module('myApp').controller('ctrl', ($scope, AsyncService) => {
$scope.asyncService = AysncService;
});

<async-directive async="asyncService.async" />

上面的代码是如何使用该指令的示例,但我只想单独测试该指令。由于该指令需要一个函数而不是一个可用于调用函数的对象,我将如何测试它?如果我使用 spy ,我会监视什么?

最佳答案

该服务应该被 stub :

beforeEach(() => {
module('myApp', { AsyncService: { async: jasmine.createSpy() } });
})

然后可以模拟该方法以在指令编译之前返回一个 promise :

AsyncService.async.and.returnValue($q.resolve(...));

关于javascript - 测试不在服务内的异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46595302/

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