【问题标题】:QT unit-testing : qtestlib Segmentation faultQT 单元测试:qtestlib 分段错误
【发布时间】:2011-05-12 12:09:52
【问题描述】:

我正在编写一个测试应用程序,用于测试显示的表单是否正确。这是在按下菜单上的一个键之后。这是我遇到分段错误的代码块。

std::auto_ptr<MyForm> pForm(new MyForm(3,3));  
QTest::keyPress(pForm.get(), Qt::Key_0);  
QWidget *pWin = QApplication::activeWindow(); 
QCOMPARE(pWin->windowTitle(), QString("My Second Menu")); 

问题:

  • 当您只是模拟按键时,真的可以获得当前活动的窗口吗?
  • 我在使用 activeWindow 时得到了一个空指针,您是否可以通过按键获得应该在屏幕上显示的窗口句柄?

谢谢...

【问题讨论】:

  • 两个想法: 1. 检查您希望作用于 Key_0 的代码是否实际被触发并创建了菜单。如果没有,请尝试 show() 表单。 2. 窗口可能没有同步激活,而是延迟了,那你的代码就不行了。
  • 谢谢老兄......你是对的......我在 keyPress 中添加了延迟,它起作用了! :D

标签: c++ unit-testing qt user-interface qtestlib


【解决方案1】:

弗兰克是对的。窗口没有被同步激活。添加作为 keyPress 参数的延迟确实解决了问题。谢谢弗兰克!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-11
    • 2012-08-20
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    • 2012-04-29
    • 2012-08-22
    相关资源
    最近更新 更多