将Enum值与Integer进行比较 - Assert.AreEqual

jtp*_*yda 0 c# enums nunit

我对枚举进行了以下测试:

[TestCase]
public void NoneIsDefaultTest()
{
    Assert.AreEqual(0, Command.None);
}
Run Code Online (Sandbox Code Playgroud)

我们的想法是确保枚举的任何添加都不会更改默认值.但是,测试失败了:

Expected: 0
But was:  None
Run Code Online (Sandbox Code Playgroud)

是Assert.AreEqual自动应用.ToString()?我怎么能避免这个?

编辑:枚举定义:

internal enum Command { None = 0, Build, Config, Reconfig, Help, Version }
Run Code Online (Sandbox Code Playgroud)

Lee*_*Lee 5

AreEqualToString仅在格式化错误消息时不用于比较.枚举形成与底层值类型不同的类型,因此比较0.Equals(Command.None)返回false,因为枚举值不是int.