枚举的单元测试顺序

Unit Testing Order of Enum

我有一个已排序的枚举,按照我遍历它们的顺序表示杂货店的各个部分。

enum Departments { Produce=0, Bulk=1, Deli=2, Frozen=3, NonFood=4, Bakery=5, DryGoods=6 }

现在我有一些 class 表示要获取的具有名称和部门的项目:

class GroceryItem : IComparable<GroceryItem>
{
    string Name;
    Departments Department;
}

正确的排序功能按部门的字母顺序对杂货清单进行排序,因此我可以最大限度地减少对商店的遍历。

对订单枚举进行单元测试是否有价值,或者我应该使用其他一些数据结构来保存部门?

如果排序是一项业务需求,我会为生成(并可能显示)排序结果的方法编写一个测试。将 GroceryItem 的无序集合传递给它并验证顺序是否正确。

只对枚举进行 测试可能是错误的方法(尽管您可以同时进行两种测试)。我这么说的原因是,您不能保证您的代码实际上 按部门排序。

这些都不会被发现:

groceryItems.OrderBy(g => g.Name).ThenBy(g => g.Department);

groceryItems.OrderByDescending(g => g.Department).ThenBy(g => g.Department);

groceryItems.OrderBy(g => g.Name);

groceryItems.OrderBy(g => g.Department);

即使枚举已正确排序。