2

在使用 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")

但是没有更优雅的方式来做到这一点吗?感谢您的提示。

4

1 回答 1

5

您可以使用Enum.HasFlag

在你的情况下:

Assert.That(aValue.HasFlag(Powers.Two), "something went wrong");

请注意,此方法仅在.NET Framework 4及更高版本中可用。

于 2013-05-07T13:44:23.883 回答