在使用 NUnit 为我们的 .Net (C#) 库编写一些测试时,我遇到了以下问题:我有一个具有 Flags 属性的枚举,例如
[Flags]
public enum Powers : int
{
Undefined = 0,
Zero = 1,
One = 2,
Two = 4,
}
Run Code Online (Sandbox Code Playgroud)
现在我想编写一个 NUnit 测试来检查
Powers aValue = Powers.One | Powers.Two
Run Code Online (Sandbox Code Playgroud)
包含 Powers.Two。目前,我使用
Assert.That((aValue & Powers.Two) == Powers.Two), "something went wrong")
Run Code Online (Sandbox Code Playgroud)
但是没有更优雅的方法来做到这一点吗?谢谢你的提示。
您可以使用Enum.HasFlag。
在你的情况下:
Assert.That(aValue.HasFlag(Powers.Two), "something went wrong");
Run Code Online (Sandbox Code Playgroud)
请注意,此方法仅在.NET Framework 4及更高版本中可用。
| 归档时间: |
|
| 查看次数: |
1115 次 |
| 最近记录: |