如何使用 C++带有 UnitTest 的枚举++检查?

发布于 2024-10-28 18:03:23 字数 509 浏览 1 评论 0原文

我有以下枚举:

namespace Country {
    enum {
        ITALY = 1,
        SPAIN = 2
    };
}

和以下 UnitTest++ 测试:

TEST(something) {
    CHECK_EQUAL(Country::SPAIN, object.getCountry(1)); // getCountry returns int
}

这不起作用。我以为 Country::SPAIN 会自动转换为 int 2,但我得到了这个错误:

error: no matching function for call to ‘CheckEqual(UnitTest::TestResults&, Country::<anonymous enum>, int, UnitTest::TestDetails)’

I have the following enum:

namespace Country {
    enum {
        ITALY = 1,
        SPAIN = 2
    };
}

And the following UnitTest++ test:

TEST(something) {
    CHECK_EQUAL(Country::SPAIN, object.getCountry(1)); // getCountry returns int
}

This doesn't work. I thought Country::SPAIN would be automatically converted to int 2, but instead I get this error:

error: no matching function for call to ‘CheckEqual(UnitTest::TestResults&, Country::<anonymous enum>, int, UnitTest::TestDetails)’

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱她像谁 2024-11-04 18:03:23

自己将枚举强制转换为 int

TEST(something) {
    CHECK_EQUAL(static_cast<int>(Country::SPAIN), object.getCountry(1));
}

Cast the enum to int yourself:

TEST(something) {
    CHECK_EQUAL(static_cast<int>(Country::SPAIN), object.getCountry(1));
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文