测试/自动化表格内容,其中不区分大小写的排序是唯一的要求,但该列具有相同的单词不同的案例项目

时间:2016-12-12 16:44:20

标签: c# sorting selenium datatable

我需要一种方法来测试和验证我的UI表内容是否填充了数据库中的正确项并正确排序。目前,我有一个查询返回我需要的数据(在其中一个列上不区分大小写),然后将该查询结果放入DataTable类型。然后我在C#/ Selenium中有一个方法将UI的表内容转换为DataTable类型。我想在这两个数据表上执行Assert AreEqual或自定义断言以确保它们匹配。

但是我遇到了问题,因为需要验证的表是在包含一堆相同字的不同案例项的列上排序的,并且所述表的要求指定此列应该不区分大小写地排序。

所以每次加载页面时,那些相同单词的不同案例项有时会在列表/表中的不同索引处。例如,我可以第一次加载页面并查看:

NETWORK  COLUMNTHATISSORTED
Net1     word 1    
Net2     WORD 2
Net3     word 2
Net4     WORD 2
Net5     word 3

我可以第二次加载页面并看到:

NETWORK  COLUMNTHATISSORTED
Net1     word 1    
Net3     word 2
Net4     WORD 2
Net2     WORD 2
Net5     word 3

根据要求,这是完全正常的,不被视为缺陷。但是出于自动化测试的目的,我无法想到一种代码的方法。如果我使用简单的AreEqual Assert,则相同单词不同情况项的不一致性有时会导致测试失败。如何使用C#或Selenium代码解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可以在断言之前对UI数据表进行排序,例如:

datatable.DefaultView.Sort = "NETWORK";
datatable = datatable.DefaultView.ToTable();