我有一个函数,
Edit1 - 用真正的功能更新了功能,因为之前的功能是简化的同步功能,代码会像@AlexMA 在评论中指出的那样正确工作
'returnSuccessOrFailure': function () {
return driver.findElement(wd.By.css('div#button')).then(function (button) {
return button.getAttribute('class').then(function (status) {
return status;
});
});
}
在我的 node.js 测试中,我的断言失败了,因为在 returnSuccessOrFailure
完成执行之前调用了断言。
var value = returnSuccessOrFailure();
assert.equal(value,'success', 'Looks like something failed');
如果我在 returnSuccessOrFailure
中实现一个 promise 并链接我的断言,那么就可以了。我的问题是,在这种情况下,我是否必须一直执行 promise 才能阻止执行?我是 Javascript 的新手,它的异步性质以及何时使用 promise 和何时不使用的任何见解都会很有用。
最佳答案
你不必在其中“实现一个 promise ”,只需返回你已经拥有的那个:
returnSuccessOrFailure': function () {
return driver.findElement(wd.By.css('div#button')).then(function (button) {
...
但是,是的,您仍然需要将断言放入done
处理程序
returnSuccessOrFailure().done(function(value) {
assert.equal(value,'success', 'Looks like something failed');
}
关于javascript - 在 node.js 中断言值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25747109/