量角器 - 从它块中获取 getText

Protractor - getting the getText out of it block

我使用 getText 方法获取文本并将其与另一个文本进行比较。 我不能在 it 块之外使用 if-else 块来比较两个字符串。
如果我将 if-else 块插入 it 块,它工作正常,但我不能使用 drinkDropdownMenu();函数(包含 15 个 it 块) inside it block

  import {beverageDropdownMenu} from '../e2e/customBeforeRunAuto/bevSetDropDownMenu';

  describe('Should check the bev set before opening the bev pop up menu', function() 
  {
    var setName;

    it("should check the name", function () 
    {
        activebeverageSet.getText().then(function(text)
        {
            console.log('set name is ' + text);
            setName = text;
        });
    });

    if(setName == getBeverageSetFromSetup)
    {
        it('checking the beverage set is finish', () => 
        {
            console.log('\nThe beverege set ' + setName + ' is selected\n');
        });
    }
    else
    {
        console.log('\nThe beverege set ' + setName + ' is new one\n');
        beverageDropdownMenu();
    } 
});

我可以在没有15个it块的else里面放160行代码解决问题,但以后维护代码会很困难

   it('should compare the beverage set', () => 
    {
        if(setName == getBeverageSetFromSetup)
        {
            console.log('\nThe beverege set ' + setName + ' is selected\n');
            console.log('\nThe beverege set ' + getBeverageSetFromSetup + ' is chosen\n');
        }
        else
        { 
            console.log('\nThe beverege set ' + setName + ' is displayed\n');
            console.log('\nThe beverege set ' + getBeverageSetFromSetup + ' is chosen\n');
            beverageDropdownMenu();
        } 
    });

您需要了解 jasmine 构建是如何描述和阻塞的。这回答了你的问题