[英]How to get catch2 to print the compared C-style string's contents?
我正在使用 catch2(最新版本 - 2.13.6 截至目前),在我的測試用例中,我有一堆類似於以下的檢查:
CHECK(!strcmp(my_str, "some literal string here"));
每個測試用例的文字都不同,顯然my_str
的內容也是如此。
當這樣的檢查失敗時,我得到的輸出如下:
/path/to/test_source_file.cpp:123: FAILED:
CHECK( !strcmp(my_str, "some literal string here") )
with expansion:
false
但我沒有打印出my_str
的攪拌。 讓上述內容也打印(部分) my_str
的內容的最佳方法是什么?
筆記:
my_str
是以空值結尾的。std::string
,但如果您必須這樣做,我不排除它。我自己的hacky解決方案如下:
#define PRINTING_CHECK(expected_, actual_) \
do { \
INFO( "actual_ = " << '"' << actual_ << '"'); \
CHECK(!strcmp(actual_, expected_)); \
} while (false) \
但我希望可能有更優雅的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.