2016-12-12 7 views
0

私のUIテーブルの内容には、データベースに格納され、正しくソートされました。現在、DBから必要なデータ(列の1つで無感性にソートされたソート)を返し、その結果をDataTable型に配置するクエリがあります。次に、UIのテーブルの内容をDataTable型に変換するC#/ Seleniumのメソッドがあります。私はAssert AreEqualやこれらの2つのデータセットのカスタムアサーションを行い、一致していることを確認します。大文字小文字を区別しない並べ替えが唯一の要件であるが、その列に同じ単語の別の大文字小文字の項目がある場合のテーブルの内容のテスト/自動化

しかし、検証が必要なテーブルが、同じ単語の別の大文字小文字の項目を含む列でソートされているため、このテーブルの要件でこの列をソートする必要がある無感覚に

したがって、ページをロードするたびに、同じ単語の異なるケースの項目がリスト/表の異なるインデックスに表示されることがあります。私はページをもう一度ロードし、この見ることができます

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コードでこの問題を回避するにはどうすればよいですか?

答えて

0

あなたが好き、アサーションの前にUIのデータテーブルを並べ替えることができます。これは、テーブルには正しい内容を持っていることを確認します

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

、しかし、それはUI表のことをテストすると言うのテスト基準を満たしていません大文字と小文字を区別しないソートが動作 –

+0

正しく理解すれば、2番目の表は正しい出力ですか? 次に、COLUMNTHATIS​​SORTEDを2つのカラム(col1、col2)に分割し、次に 'datatable.DefaultView.Sort =" col2、col1 "'としてソートします。 –

+0

両方のテーブルが「正しい」出力です。それが問題だ。同一単語の異なるケースの項目が続くパターンやルールはありません。なぜなら、この要件は普通のジェーンの大文字小文字を区別しないソートであるからです。ですから、テーブル全体が無意識にソートされていることを検証する方法を考えなければなりません。同じ単語の別のケースのアイテムグループが毎回無作為にインデックス付けされるので、それを理解してください。 –

関連する問題