【发布时间】:2015-11-05 07:26:36
【问题描述】:
我正在尝试为基于 Qt 的项目(Qt 5、C++03)中的类编写单元测试。
class Transaction { // This is just a sample class
//..
public signals:
void succeeded();
void failed();
}
Transaction* transaction = new Transaction(this);
QSignalSpy spy(transaction, SIGNAL(succeeded()));
transaction->run();
spy.wait(5000); // wait for 5 seconds
我希望我的测试运行得更快。
在发出信号failed() 后如何中断wait() 调用,以防事务失败?
我在 QSignalSpy 类中看不到任何可用的插槽。
我应该改用 QEventLoop 吗?
【问题讨论】:
-
如果你在没有参数的情况下调用 spy.wait(),它会在 5000 毫秒内发出信号后立即返回 true。您无需等待 5000 毫秒。
标签: c++ qt unit-testing qt5 signals-slots