Я использую Catch для написания модульных тестов и столкнулся с проблемой, когда мой тест не проходит, потому что выдается исключение, даже если я использую REQUIRE_THROWS_AS
, Это мой тест:
SECTION("Get column index for inexistent name") {
REQUIRE_THROWS_AS(result->column_index("inexistent"), std::out_of_range);
}
И это исключение, которое я получаю на своей консоли:
$ tests/unit_tests "Test Result"libc++abi.dylib: terminating with uncaught exception of type std::out_of_range: Name not found.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unit_tests is a Catch v1.5.8 host application.
Run with -? for options
-------------------------------------------------------------------------------
Test Result
Query empty table
Get column index for inexistent name
-------------------------------------------------------------------------------
<path to file>:22
...............................................................................
<path to file>:46: FAILED:
due to a fatal error condition:
SIGABRT - Abort (abnormal termination) signal
===============================================================================
test cases: 1 | 1 failed
assertions: 8 | 7 passed | 1 failed
Если я понимаю, поймать это исключение именно то, что я пытаюсь поймать правильно?
make clean
решил проблему.
Других решений пока нет …