gpt4 book ai didi

angularjs - 用于分拣的 Protractor e2e 测试

转载 作者:行者123 更新时间:2023-12-04 17:33:42 27 4
gpt4 key购买 nike

我正在使用 Protractor 编写 e2e 测试用例。我正在尝试编写排序测试(升序、降序)。这是我的 html 代码

<tbody>
<tr>
<td>
<a ng-click="sortBy('Name')" href="" style="text-decoration: none;" class=""> Name</a>
</td>
<td>
<a ng-click="sortBy('RollNo')" href="" style="text-decoration: none;"> Roll Number</a>
</td>
<td>
<a ng-click="sortBy('subject')" href="" style="text-decoration: none;"> Subject</a>
</td>
</tr>
<tr>
<td>ANDREW, STRAUSS</td>
<td>122</td>
<td>Maths</td>
</tr>
<tr>
<td>ANDREW, STRAUSS</td>
<td>123</td>
<td>Science</td>
</tr>
</tbody>

我们可以测试排序。如果是,如何?

最佳答案

要以任何顺序测试排序,

  • 单击 sortBy 元素,以便按顺序对元素进行排序。
  • 从按排序顺序显示的列中获取元素的文本。
  • 稍后将每个元素的文本存储在一个数组中,以便稍后检查排序。
  • 下一步是将这个未排序的数组复制到一个临时数组中,并对临时数组进行排序。
  • 最后一件事是检查元素是否按您需要的顺序排序,您可以使用 expect 进行验证。陈述。

  • 使用 JavaScript sort()检查升序排序的方法和 reverse()以降序检查排序。

    您可以通过将元素添加到数组中来按升序测试元素的排序,然后使用已排序的数组进行验证。这是有关如何执行此操作的示例 -
    var sorted = [] , unSorted = [];
    var ele = element.all(by.css(tbody tr td:nth-of-type(1)));
    ele.each(function(eachName){
    eachName.getText().then(function(name){
    unSorted[i] = name;
    i++;
    });
    }).then(function(){
    //check sorting
    sorted = unSorted.slice();
    sorted.sort(); //use sort function of Javascript
    expect(sorted).toEqual(unSorted);
    });

    同样,您可以尝试使用其他元素来检查您的案例中的其他类型的排序,按 RollNo 和主题排序。如果您因 Protractor 速度快而面临异步错误问题,那么您可以将排序验证码与循环链接起来。

    另一种方法是使用 map() Protractor 的功能将所有元素文本放入数组,然后检查排序。我推荐使用这个。这是一个例子——
        ele.map(function(eachName){
    return eachName.getText().then(function(unSorted){
    return unSorted;
    });
    }).then(function(unSorted){
    var sorted = unSorted.slice();
    sorted = sorted.sort(); //sort the array
    expect(sorted).toEqual(unSorted); //check if both sorted and unsorted arrays are same
    });

    希望这可以帮助。

    关于angularjs - 用于分拣的 Protractor e2e 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32330212/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com