0
我使用Assert.That(values, Is.Ordered.Descending)
其中values
是字符串格式DateTime是否列表。
預期的結果:具有相同string
值
連續值由排序功能視爲有效。
實際結果:
重複/順序具有相同值的值不被允許的,則拋出異常。
是否有一個內置選項/參數,可以讓我指定相等/重複值是否正確?
我使用Assert.That(values, Is.Ordered.Descending)
其中values
是字符串格式DateTime是否列表。
預期的結果:具有相同string
值
連續值由排序功能視爲有效。
實際結果:
重複/順序具有相同值的值不被允許的,則拋出異常。
是否有一個內置選項/參數,可以讓我指定相等/重複值是否正確?
在撰寫本文時,沒有重載/方法來指定重複值可以作爲序列的一部分。
我寫了自己的方法來處理這種情況。
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)
是起始值一個可行的黑客。
嘗試處理重複值的自定義異常類型的ExpectedException(屬性)。 – user2347763
Hi @GrantWinney是你的NUnit版本大於2.5嗎?請參閱http://www.nunit.org/index.php?p=collectionConstraints&r=2.5.10的底部。 –
對不起@GrantWinney我在Visual Studio中正確輸入了它,但是在將它轉錄到我的問題時失敗了。我用正確的語法更新了這個問題。 –