我们想要包管按钮处于激活状况,是以我们供给一个余暇前提函数:
【编辑推荐】
- 没学过C说话的价值
- C说话核心之数组和指针详解
- C说话预处理敕令总结大年夜全
- 用C说话写面向的对象是一种什么样的体验
- 2017年5月编程说话排行榜:Java与C说话优势正开端缩小
- gboolean
- ttt_functional_test_util_idle_test_toggle_active(
- GtkToggleButton **toggle_button)
- {
- gboolean do_idle;
- do_idle = TRUE;
- gdk_threads_enter();
- if(*toggle_button != NULL &&
- GTK_IS_TOGGLE_BUTTON(*toggle_button) &&
- gtk_toggle_button_get_active(*toggle_button)){
- do_idle = FALSE;
- }
- gdk_threads_leave();
- return(do_idle);
- }
测试场景
因为这个 Tictactoe 法度榜样异常简单,我们只须要确保点击了一个 GtkToggleButton 按钮即可。一旦该按钮肯定进入了激活状况,功能测试就可以履行。为了点击按钮,我们应用膳绫擎提到的很便利的 util 函数。
- GtkWindow *window;
- Tictactoe *ttt;
- void*
- ttt_functional_test_gtk_main(void *)
- {
- gtk_main();
- pthread_exit(NULL);
- }
- void
- ttt_functional_test_dumb_player_b()
- {
- GtkButton *buttons[3][3];
- guint i;
- /* to avoid race-conditions copy the buttons */
- gdk_threads_enter();
- memcpy(buttons, ttt->buttons, 9 * sizeof(GtkButton *));
- gdk_threads_leave();
- /* TEST 1 - the dumb player B */
- for(i = 0; i < 3; i++){
- /* assert player A clicks the button successfully */
- if(!ttt_functional_test_util_button_click(buttons[0][i])){
- exit(-1);
- }
- functional_test_util_idle_condition_and_timeout(
- ttt_functional_test_util_idle_test_toggle_active,
- ttt_functional_test_util_default_timeout,
- &buttons[0][i]);
- /* assert player B clicks the button successfully */
- if(!ttt_functional_test_util_button_click(buttons[1][i])){
- exit(-1);
- }
- functional_test_util_idle_condition_and_timeout(
推荐阅读
1865年,理查德·米勒·德文斯(Richard Millar Devens)在《贸易妙闻百科全书》(Cyclopædiaof Commercial and Business Anecdotes)中提出了“贸易智能”(BI>>>详细阅读
本文标题:用C语言对Gtk+应用进行功能测试
地址:http://www.17bianji.com/lsqh/37870.html
1/2 1