功能

GLibtest_expect_message

自:2.34

声明 [源]

void
g_test_expect_message (
  const gchar* log_domain,
  GLogLevelFlags log_level,
  const gchar* pattern
)

描述 [源]

指明应记录一个带有给定 log_domainlog_level,并且文本与 pattern 匹配的消息。

当该消息被记录时,它不会被打印,且测试用例不会崩溃。

此 API 只能与旧的日志 API(定义了 G_LOG_USE_STRUCTUREDg_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 字符串。