Javascript 如何在量角器中组合多个期望条件?

Javascript 如何在量角器中组合多个期望条件?,javascript,jasmine,protractor,Javascript,Jasmine,Protractor,我有一个量角器jasmine测试,我试图检查页面上的所有字段是否为空。我使用for循环编写了一个简单的测试。现在,我的问题是,我试图坚持量角器/茉莉花最佳实践,即每个预期条件只有一次测试。如何将此代码更改为只有一个预期条件 以下是我写的测试: it("should check that all input fields are blank", function() { allInputs.then(function(elements) { elements.forEach

我有一个量角器jasmine测试,我试图检查页面上的所有字段是否为空。我使用for循环编写了一个简单的测试。现在,我的问题是,我试图坚持量角器/茉莉花最佳实践,即每个预期条件只有一次测试。如何将此代码更改为只有一个预期条件

以下是我写的测试:

it("should check that all input fields are blank", function() {
    allInputs.then(function(elements) {
        elements.forEach(function(element){
            expect(element.getText()).toEqual("");
        });
    });
});

简而言之:您可以这样做-
expect(allInputs.getText()).toEqual(“”

更多详细信息:
element.all().getText()
返回一个包含所有子元素的文本值的数组,由于您希望这些值为空,只需检查整个字符串是否为空即可

来回答你的一般问题

“当我们需要多次验证来验证时,我们如何处理场景 “被执行”

预期条件提供条件选项-如或等。请参阅

如果您想将多个期望分组

Promise.all[
expect(allInputs.getText()).toEqual(""),
expect(allOutputs.getText()).toEqual("")
].then(function(){
   done();
  })
更新1:
Promise。上面所有的
语法都不正确。应该是
Promise.all([Array of Promises])
我缺少大括号的地方

这是正确的做法

describe('Describe something', function() {
    it('check check', function(done) {
        browser.get('http://www.protractortest.org/#/')
        Promise.all([
            expect(browser.getCurrentUrl()).toContain('protractortest'),
            expect(browser.getCurrentUrl()).toContain('org')]).then(function() {
            done();
        }).catch(function() {
            done.fail('somehow the Url is incorrect');
        })
        browser.sleep(10000)
    });
});
这使我们能够灵活地将测试用例中的所有验证分组为一个承诺(在一个数组中提供expects返回的所有承诺)。这将帮助我们对所有断言进行分组,通过/失败测试用例,并为所有验证集抛出自定义错误消息

更新2:如上所述
element.all().getText()
返回数组并进行比较,我错误地将数组对象与字符串对象进行了比较。我们需要执行
array.join()
并进行比较

 allInputs.getText().then(function(values){
    expect(values.join('')).toEqual('')
})

谢谢这至少回答了我的两个概念,也许更多:)不过我有两个问题。为什么我们需要在您提供的第二个代码块中等待?其次,在哪种情况下我们需要最后一个代码示例?关于这个问题-
为什么我们需要在您提供的第二个代码块中等待?
-我刚刚从量角器教程中选择了一个示例。但您不需要这样做。对于下一个问题-‘第二,在什么情况下我们需要最后一个代码样本?’。。当一个测试用例真的需要多个期望值时,我使用这段代码。。我所做的是。。我将不同期望返回的所有承诺组合在一个Promise.all()下,并通过测试用例,其中只有一个决定成功感谢您的回复。这似乎是一个好方法,但测试仍将包含多个预期。对此有什么想法吗?另外,
expect(allInputs.getText()).toEqual(“”
对我不起作用。我得到以下错误:
预期['''','','','','','','','','','','','','','','','','','','','','',''等于'
Promise.所有代码块都不工作。.它给出以下错误:
失败:无法读取未定义的
 allInputs.getText().then(function(values){
    expect(values.join('')).toEqual('')
})