在使用NUnit为我们的.Net(C#)库编写一些测试时,我遇到了以下问题: 我有一个具有Flags属性的枚举,例如
[Flags]
public enum Powers : int
{
Undefined = 0,
Zero = 1,
One = 2,
Two = 4,
}
现在我想编写一个NUnit测试来检查
Powers aValue = Powers.One | Powers.Two
包含Powers.Two。目前,我使用
Assert.That((aValue & Powers.Two) == Powers.Two), "something went wrong")
但这不是更优雅的方式吗? 谢谢你的提示。
答案 0 :(得分:3)
您可以使用Enum.HasFlag。
在你的情况下:
Assert.That(aValue.HasFlag(Powers.Two), "something went wrong");
请注意,此方法仅适用于 .NET Framework 4 及更高版本。