枚举的单元测试顺序

本文关键字:测试顺序 单元 枚举 | 更新日期: 2023-09-27 18:36:45

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

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

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

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);

即使枚举已正确排序。