Как использовать перечисления C ++ с проверками UnitTest ++? - PullRequest
0 голосов
/ 30 марта 2011

У меня есть следующее перечисление:

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

1 Ответ

1 голос
/ 30 марта 2011

Примените enum к int себе:

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