簡體   English   中英

如何在UnitTest ++檢查中使用C ++枚舉?

[英]How to use C++ enums with UnitTest++ checks?

我有以下枚舉:

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)’

將枚舉強制轉換為int自己:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM