Running spec after promise has been resolved

久未见 提交于 2019-12-08 08:12:52

问题


I came across an issue with running a spec that should be executed after a promise has been resolved. See the commented simplified example below.

I tried using IIFE or calling done() function in the spec but none of these seemed to work.

// getIds() is a simple promise which returns an array of ids
getIds().then(function (ids) {
    console.log('IDS: ' + ids); // all good so far

    // This test is never run
    it('dummy test', function () { 
        console.log('TEST HAS BEEN RUN');
    });
});

回答1:


You can use browser.wait() to wait until your promise is complete. Or you can put your test inside the then block:

it('should test', function() {
  getIds().then(function (ids) {
    // some action.
    expect()...
  });
});

Also, you can put the promise in a beforeEach or a beforeAll (jasmine 2). Assign the ids to a variable declared inside a describe. The value should be available for your test to use.



来源:https://stackoverflow.com/questions/32480430/running-spec-after-promise-has-been-resolved

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!