可能是重复问题:
如何枚举枚举?
所以我的代码像这样:
enum Decision
{
DecisionA,
DecisionB,
...
}
public void DoStuff(Decision d)
{
switch(d)
{
case Decision.DecisionA:
....
...
}
}
基本上,无论做出何种决策,DoStuff
都会执行相同的操作,但是这些决策可以使其更加优化(更快或其他)。
现在,我想为DoStuff
实现单元测试。通过像new Decision [] {DecisionA, DecisionB, ...};
这样拥有一个数组来测试所有决策是否正常运行非常容易。然而,如果我添加了一个决策,我就必须回去手动将其添加到单元测试中。
是否可以仅访问由enum
指定的所有可能选项?例如,像这样:
foreach(var d in Decision.Options)
{
//d will be DecisionA, and then DecisionB, etc etc
}