入額

2016-04-25 11 views
0

シナリオ:私はvaluesは、文字列形式で日付時刻のリストがあるAssert.That(values, Is.Ordered.Descending)を使用しています入額

期待される成果:同じstring値を持つ

連続した値は、順序付け関数によって有効なものとして扱われます。

実際の結果:

重複/同じ値の連続した値が許可されていないと例外がスローされます。

等しい/重複値が問題ないことを指定するためのオプション/パラメータが組み込まれていますか?

+0

重複する値を処理するカスタム例外タイプのExpectedException(属性)を試してください。 – user2347763

+0

こんにちは@GrantWinneyはあなたのNUnitバージョン2.5以上ですか? http://www.nunit.org/index.php?p=collectionConstraints&r=2.5.10の下部を参照してください。 –

+0

申し訳ありません@GrantWinney私は正しくVisual Studioでそれを正しく入力しましたが、私の質問にそれを転記するときに失敗しました。私は正しい構文で質問を更新しました。 –

答えて

0

書面では、重複する値がシーケンスの一部として問題ないことを指定するオーバーロード/メソッドはありません。

私はこのケースを処理する独自の方法を書いています。私のシナリオでは

private void AssertColumnIsOrderedByDateDescending(int columnIndex) 
    { 
     Dictionary<int, ReadOnlyCollection<IWebElement>> tableData = Driver.GetTableData(IssuesTableBodySelector); 
     DateTime previousDate = DateTime.Now.AddDays(1); 

     foreach (ReadOnlyCollection<IWebElement> webElements in tableData.Values) 
     { 
      string dateTimeString = webElements.ElementAt(columnIndex).Text; 

      if (string.IsNullOrWhiteSpace(dateTimeString)) 
       continue; 

      DateTime currentDate = DateTime.Parse(dateTimeString); 

      Assert.LessOrEqual(currentDate, previousDate); 

      previousDate = currentDate; 
     } 
    } 

問題がしか遡及日付で作成されているので.AddDays(1)は開始値のための実行可能なハックです。