응용 프로그램의 단위 테스트를 작성하고 있습니다. 나는 생성자에서 몇 가지 예외를 가지고, 그래서 쓴 :이 쓸 때GTest의 C++ 11 문제
TEST(Tablier, ConstructeurParamInvalide2)
{
ASSERT_THROW(Tablier t_tablier{10, 65} , PreconditionException);
}
, 매크로 ASSERT_THROW 만족하지 보인다 테스트가 실패합니다.
이TEST(Tablier, ConstructeurParamInvalide2)
{
ASSERT_THROW(Tablier t_tablier(10, 65) , PreconditionException);
}
매크로가 잘 작동하고 테스트를 통과 :이 쓰기 경우 Tablier t_tablier{10; };
대신
switch (0) case 0: default: \
if (::testing::internal::ConstCharPtr gtest_msg = "") { \
bool gtest_caught_expected = false; \
try { \
if (::testing::internal::AlwaysTrue()) { Tablier t_tablier{10; }; \
} \
catch (65} const&) { \
gtest_caught_expected = true; \
} \
catch (...) { \
gtest_msg.value = \
"Expected: " "Tablier t_tablier{10" " throws an exception of type " \
"65}" ".\n Actual: it throws a different type."; \
goto gtest_label_testthrow_76; \
} \
if (!gtest_caught_expected) { \
gtest_msg.value = \
"Expected: " "Tablier t_tablier{10" " throws an exception of type " \
"65}" ".\n Actual: it throws nothing."; \
goto gtest_label_testthrow_76; \
} \
} else \
gtest_label_testthrow_76: \
return ::testing::internal::AssertHelper(::testing::TestPartResult::kFatalFailure, "/home/eric/Programming/cpp/Puissance4/pxTestsUnitaires/tests/test_Tablier.cpp", 76, gtest_msg.value) \
= ::testing::Message()
주의 : 여기에 매크로 확장이다. 내 프로젝트와 컴파일러는 C++ 11 용으로 구성되어 있으며 다른 많은 테스트는 C++ 11 구문을 사용하여 전달됩니다. 어떤 아이디어가 문제 일 수 있습니까?
감사
가능한 중복 (http://stackoverflow.com/questions/30372148/passing-an-initialization-list-to-a-macro) – neuront