.net - NUnit 断言枚举值包含标志

标签 .net nunit flags

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

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

最佳答案

您可以使用Enum.HasFlag .

就您而言:

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

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

关于.net - NUnit 断言枚举值包含标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16420481/

相关文章:

.net - 用于 .Net 开发的多格式文件查看器

.net - 字符串数组和 ConvertTo-HTML

c# - 如何测试 IActionResult 及其内容

C# - Selenium - 重试属性不适用于 Selenium 超时

c# - 使用 RegisterHotKey api 调用时,为什么它接受 1、2、4 和 8 作为修饰符?

shell - zsh 可以完成命令标志吗?

c# - 基于相似性比较字符串

c# - 如何使用 C# 和 .NET 框架创建 Windows 7 通知区域弹出窗口?

nunit - TeamCity和正在运行的NUnit测试

c - 如何仅包含 header 中的定义