Qt 4.7.1
我有一个直到最近表现良好的 qttest 设置。我遇到并处理过使用单次计时器与模式对话框交互的需要。
但是,我现在看到了相反的行为;诸如 QFileDialog::getSaveFileName 之类的调用会立即返回,而不会显示对话框。这是因为我执行了合并,所以我假设它背后有一些代码或构建更改,但它不是函数调用本身。
就示例代码而言,我无法发布我的整个框架或 AUT,但在测试函数中考虑以下内容:
QMessageBox::StandardButton button = QMessageBox::question(NULL,"Thing",
"Do you want to do a thing?",
QMessageBox::StandardButton::Yes | QMessageBox::StandardButton::No);
呼叫立即返回,按钮设置为 NoButton。我应该补充一点,我的测试有一些框架,我用 QTest::qExec 手动启动每个测试。(框架没有改变,我敢肯定)
关于可能导致这种情况的任何想法?
编辑:
上例中由消息框启动的事件循环已将 quitNow 设置为 true,这导致 exec 立即返回。我现在正在寻找为什么会这样设置,同时请随时启发我!