我试图为从服务调用异步函数的函数编写测试,但我一辈子都不知道如何让Jasmine在执行expect函数之前等待异步操作完成。
describe('vm.submitLogin', function () {
var $scope;
var $q;
var deferred;
var $controller;
beforeEach(module('myModule'));
beforeEach(inject(function (_$controller_, _$rootScope_, _$q_, LoginService, $httpBackend) {
$q = _$q_;
$scope = _$rootScope_.$new();
$controller = _$controller_;
deferred = _$q_.defer();
spyOn(LoginService, 'login').and.callFake(function () {
return $.Deferred().resolve({success: true, twoFactorRequired: false});
});
$httpBackend.expectGET("/data/I/need/to/mock").respond({"uri": "http://localhost:8081/data/I/need/to/mock.json"});
var vm = $controller('LoginCtrl', { $scope: $scope});
vm.submitLogin();
$scope.$apply();
}));
it('should work, please work...', inject (function ($httpBackend, LoginService) {
expect(something);
}));
});
我试图使用Jasmine的“完成”功能,但我不知道如何实现它。
在本例中,只要
$scope.$apply();
调用时,它立即跳转到expect并失败,因为异步操作尚未完成。
尝试在$scope.$apply()之前使用$httpBackend.flush(),如文档中所述:
生产中使用的$httpBackend始终异步响应请求。如果我们在单元测试中保留这种行为,我们就必须创建异步单元测试,这很难编写、遵循和维护。但测试模拟也不能同步响应;这将改变测试代码的执行。因此,mock$httpBackend有一个flush()方法,该方法允许测试显式地刷新挂起的请求。这将保留后端的异步api,同时允许同步执行测试。
问题内容: 我知道这个问题以前曾被问过,但是所有解决方案都不适合我。 我有一个将参数发送到API的函数,并以列表的形式返回数据。我有一个UITableView设置为使用该列表,但是它在列表分配给变量之前运行。 码: 如果不立即将其作为重复投票,我将不胜感激,这是我尝试的方法。 派遣组 信号量计时 运行变量 其中包括= self和= self 。 编辑:要求提取项目, 问题答案: 您不能-也不应该-
所以我在Angular中开发了一个新组件,在ngOninit中我有以下异步函数。。。 这getUserProfile需要完成才能调用它。getPrivateGroup()和这个。需要先完成getPrivateGroup(),然后才能调用此函数。loadGroupPosts()。我知道我可以在异步请求的回调中编写这些函数,但我想知道是否有一种方法可以将它保存在ngOnInit中以保持其更干净? 有人
我通读了Dart/flatter中的Async/Await/then,试图理解为什么aysnc函数中的Await不会等到完成后再继续。在我的UI中,有一个按钮调用一个异步方法来返回一个位置,该位置总是返回null,并且不等待函数完成。 该函数将调用推送到一个新的UI页面,该页面选择一个位置,并应返回一个结果。如何使该函数等待结果?我不是在使用异步吗?
我正试图将图像上传到firebase存储,但调用该函数时,未执行wait以获取url。我错过了什么? 看看这个其他主题,我发现问题可能是“然后”,但我如何设置代码以等待url? 异步/等待/然后飞镖/颤振 谢谢
问题内容: 目前,我正在尝试在类构造函数中使用。这样一来,我就可以为正在从事的Electron项目获取自定义标签。 但是,目前该项目无法正常工作,并出现以下错误: 有没有办法避免这种情况,以便我可以在其中使用异步/等待?而不需要回调或.then()? 问题答案: 这 永远 行不通。 该关键字允许在标记为函数中使用,但它也是功能转换成一个承诺发生器。因此,标有的函数将返回承诺。另一方面,构造函数返回
我试图在react/electron项目中使用async/await,但它不起作用。我想要的是获取docker容器状态列表。但是安慰。日志(列表)返回未定义的。 有人能帮我吗?:)