我对枚举进行了以下测试:
[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)
AreEqualToString仅在格式化错误消息时不用于比较.枚举形成与底层值类型不同的类型,因此比较0.Equals(Command.None)返回false,因为枚举值不是int.
| 归档时间: |
|
| 查看次数: |
746 次 |
| 最近记录: |