Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assertion macros for throwing exception with message #1728

Closed
kkarbowiak opened this issue Aug 16, 2019 · 1 comment
Closed

Assertion macros for throwing exception with message #1728

kkarbowiak opened this issue Aug 16, 2019 · 1 comment

Comments

@kkarbowiak
Copy link
Contributor

Description
There are already very useful macros for asserting:

  • a specified type of exception is thrown (REQUIRE_THROWS_AS and CHECK_THROWS_AS)
  • an exception is thrown with specified message (REQUIRE_THROWS_WITH and CHECK_THROWS_WITH)

What I miss is the combination of the two, that is macros for asserting an exception of specified type is thrown with a specified message, for example:

  • REQUIRE_THROWS_AS_WITH( expression, exception type, string or string matcher )
  • CHECK_THROWS_AS_WITH(expression, exception type, string or string matcher )

I know I can create my custom matcher and use REQUIRE_THROWS_MATCHES or CHECK_THROWS_MATCHES macros, but I find that much more cumbersome.

@kkarbowiak
Copy link
Contributor Author

Thank you!

amitherman95 pushed a commit to amitherman95/Catch2 that referenced this issue Oct 18, 2019
Only works for exceptions that publicly derive from `std::exception`
and the matching is done exactly, including case and whitespace.

Closes catchorg#1649
Closes catchorg#1728

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Your branch is up-to-date with 'origin/master'.
#
# Changes to be committed:
#	modified:   ../docs/matchers.md
#	modified:   ../include/internal/catch_capture_matchers.h
#	modified:   ../projects/CMakeLists.txt
#	modified:   ../projects/SelfTest/Baselines/compact.sw.approved.txt
#	modified:   ../projects/SelfTest/Baselines/console.std.approved.txt
#	modified:   ../projects/SelfTest/Baselines/console.sw.approved.txt
#	modified:   ../projects/SelfTest/Baselines/junit.sw.approved.txt
#	modified:   ../projects/SelfTest/Baselines/xml.sw.approved.txt
#	modified:   ../projects/SelfTest/UsageTests/Matchers.tests.cpp
#
# Untracked files:
#	./
#	../clang-full/
#	../clang-test/
#	../clang10-build/
#	../coverage-build/
#	../gcc-build/
#	../gcc-full/
#	../include/internal/catch_matchers_exception.cpp
#	../include/internal/catch_matchers_exception.hpp
#	../misc-build/
#	../msvc-sln/
#	../notes.txt
#	../test-install/
#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants