Jasmine 承诺解决后运行规范

Jasmine 承诺解决后运行规范,jasmine,protractor,Jasmine,Protractor,我遇到了一个运行规范的问题,该规范应该在承诺得到解决后执行。请参见下面的简化示例 我尝试在规范中使用iLife或调用done()函数,但这些似乎都不起作用 // 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 r

我遇到了一个运行规范的问题,该规范应该在承诺得到解决后执行。请参见下面的简化示例

我尝试在规范中使用iLife或调用
done()
函数,但这些似乎都不起作用

// 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');
    });
});

您可以使用
browser.wait()
等待您的承诺完成。或者,您可以将测试放在then块中:

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

此外,你可以把承诺放在一个beforeach或beforeal中(茉莉花2)。将ID分配给在描述中声明的变量。该值应可供您的测试使用。

您是否尝试在测试中添加断言(expect)?我不确定测试是否会在没有断言的情况下运行。不,这对问题没有任何影响。是否收到任何错误消息?如果是,请发布。否,测试已成功运行,但报告执行了0个规格中的0个。为什么要将整个
it
spec放入回调中,而不仅仅是一个期望?