功能
GLibtest_expect_message
自:2.34
声明 [源]
void
g_test_expect_message (
const gchar* log_domain,
GLogLevelFlags log_level,
const gchar* pattern
)
描述 [源]
指明应记录一个带有给定 log_domain
和 log_level
,并且文本与 pattern
匹配的消息。
当该消息被记录时,它不会被打印,且测试用例不会崩溃。
此 API 只能与旧的日志 API(定义了 G_LOG_USE_STRUCTURED
的 g_log()
)一起使用。它不能与结构化日志 API 一起使用。请参阅测试消息。
使用 g_test_assert_expected_messages()
断言之前期望的所有消息都已看到并被抑制。
如果您在单次调用中期望多个消息,则可以连续调用此函数多次。(消息必须按照对 g_test_expect_message()
的调用顺序出现。)
例如
// g_main_context_push_thread_default() should fail if the
// context is already owned by another thread.
g_test_expect_message (G_LOG_DOMAIN,
G_LOG_LEVEL_CRITICAL,
"assertion*acquired_context*failed");
g_main_context_push_thread_default (bad_context);
g_test_assert_expected_messages ();
请注意,您不能使用此函数测试g_error()
消息,因为g_error()
故意即使程序不崩溃也不会返回;在这种情况下,请使用 g_test_trap_subprocess()
。
如果发布了 G_LOG_LEVEL_DEBUG
级别的消息,但没有通过 g_test_expect_message()
明确期望,则它们将被忽略。
自:2.34
参数
log_domain
-
类型:
const gchar*
消息的日志域。
参数可以是 NULL
。数据是函数调用的所有者。 值是一个以 NUL 结束的 UTF-8 字符串。 log_level
-
类型:
GLogLevelFlags
消息的日志级别。
pattern
-
类型:
const gchar*
glob 风格的模式(参阅
GPatternSpec
)。数据是函数调用的所有者。 值是一个以 NUL 结束的 UTF-8 字符串。