Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 量角器与承诺_Javascript_Promise_Protractor - Fatal编程技术网

Javascript 量角器与承诺

Javascript 量角器与承诺,javascript,promise,protractor,Javascript,Promise,Protractor,量角器返回承诺公开的许多函数 我是否需要使用诸如异步测试(使用done参数)和之类的量角器来构造我的Jasmine测试?或者量角器为我提供了一些魔术吗?是的,量角器执行一些魔术,以等待每个承诺得到解决 量角器文档中对该过程的最佳描述: 这意味着我们不必使用done将测试结构化为异步测试。我们可以使用expect(在Jasmine中)简单地断言,一切都应该工作。是的,为了等待每个承诺得到解决,量角器执行了一些魔术 量角器文档中对该过程的最佳描述: 这意味着我们不必使用done将测试结构化为异步测试

量角器返回承诺公开的许多函数

我是否需要使用诸如异步测试(使用
done
参数)和
之类的量角器来构造我的Jasmine测试?或者量角器为我提供了一些魔术吗?

是的,量角器执行一些魔术,以等待每个承诺得到解决

量角器文档中对该过程的最佳描述:

这意味着我们不必使用
done
将测试结构化为异步测试。我们可以使用
expect
(在Jasmine中)简单地断言,一切都应该工作。

是的,为了等待每个承诺得到解决,量角器执行了一些魔术

量角器文档中对该过程的最佳描述:


这意味着我们不必使用
done
将测试结构化为异步测试。我们可以使用
expect
(在Jasmine中)简单地断言,一切都应该工作。

WebDriverJS通过控制流来处理这一点。量角器添加了对Jasmine的
expect
的修改,以保持
then
s处于远离状态。这是最好的解释。

WebDriverJS通过控制流来处理这个问题。量角器添加了对Jasmine的
expect
的修改,以保持
then
s处于远离状态。这是最好的解释。

因此,如果我在每个
之前都有一些设置(例如使用
executeScript
在客户端上导航或运行脚本,或者甚至使用
元素(by.css…
)在
中选择元素,我是否必须使用
然后
使用正常的承诺语法?否,
beforeach
在所有方面都与
it
块相同,但在执行时除外。以这个问题为例,我们可以了解
然后
在控制流方面是如何工作的,以及何时我们可能需要它:我认为从异步实用工具方法(例如PageObjects上的方法)中显示承诺是很重要的。否则,量角器将无法“知道”启用其魔力?要在量角器的域之外向控制流添加异步调用,可以使用
browser.controlFlow().execute(promiseFunc)
其中
promiseFunc
是一个返回承诺的函数。这里很好地解释了所有这些:实际上,我的意思是:假设我有一个实用功能
foo
,它在引擎盖下使用
browser.driver.findElement
,但这并不返回承诺。如果我在每次
之前从
内部调用
foo
,我认为这会导致问题,因为承诺没有返回,因此对量角器可见?因此如果我有一些设置(例如导航或使用
executeScript
在客户端运行脚本,甚至使用
元素选择元素)(by.css…
)在
beforeach
中,我必须使用
then
使用正常的承诺语法吗?不,
beforeach
it
块在所有方面都是一样的,除了它在何时被执行。看看这个问题,了解
then
在控制流方面是如何工作的,以及何时我们可能需要它:I pre假设必须从异步实用程序方法(例如PageObjects上的方法)中显示承诺。否则,量角器将无法“知道”启用其魔力?要将量角器域之外的异步调用添加到控制流,可以使用
browser.controlFlow().execute(promiseFunc)
其中
promiseFunc
是一个返回承诺的函数。这里很好地解释了:实际上,我的意思是:假设我有一个实用函数
foo
,它在引擎盖下使用
browser.driver.findElement
,但这并不返回承诺。如果我从
内部调用
foo
在每次
之前,我认为这将导致问题,因为承诺没有返回,因此对量角器可见?