情境:
我正在使用Assert.That(values, Is.Ordered.Descending)
,其中values
是字符串格式的DateTimes列表。
预期结果:
具有相同string
值的顺序值被排序函数视为有效。
实际结果:
不允许使用具有相同值的重复/顺序值,并抛出异常。
是否有内置选项/参数可以指定相等/重复值是否正常?
答案 0 :(得分: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)
是起始值的可行黑客。