我必须为将一个枚举映射到另一个枚举的现有方法编写一个单元测试。本单元测试关注的是方法中没有定义映射的场景,我们在switch语句的default块中得到了异常。
enum players{sachin, ponting, mculum, gayle}
enum teams{westindies, australia, india, newzealand, southafrica}
public teams MappingMethod(players p)
{
switch(p)
{
case sachin: return india;
case gayle: return westindies;
......
default: throw new ArgumentOutOfRangeException();
}
}
我尝试了带有 ExpectedException 属性的单元测试,当我们遇到上述情况时,单元测试工作正常。但是当枚举中的所有项目都存在映射时,它会失败。
为了解决这个问题,我在单元测试中使用了 try..catch 块,并使用 Assert.IsInstanceOfType 来检查异常,而不是使用 ExpectedException 属性。
有没有其他更好的方法来做这个单元测试?