使用NUnit

时间:2016-04-25 22:33:57

标签: c# unit-testing nunit

情境:

我正在使用Assert.That(values, Is.Ordered.Descending),其中values是字符串格式的DateTimes列表。

预期结果:

具有相同string值的顺序值被排序函数视为有效。

实际结果:

不允许使用具有相同值的重复/顺序值,并抛出异常。

是否有内置选项/参数可以指定相等/重复值是否正常?

1 个答案:

答案 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)是起始值的可行黑客。