我正在尝试对Qt Widgets应用程序中的单个小部件进行单元测试(使用Qt测试),例如menuBar,pushButton等。该项目已设置为Subdirs项目,其中Qt应用程序和GUI测试子项目有自己的目录和.pro文件。问题是,我无法从测试类(MainWindowTest)访问驻留在MainWindow中的任何小部件,如编译器所说:
我试图将MainWindowTest声明为MainWindow中的一个朋友,但没有帮助。 我还尝试过在单独的标头中声明MainWindowTest,然后将其包含在mainwindow.h中(仍然将MainWindowTest声明为朋友),但这也无济于事。
只需在Creator中创建默认的subdir Widget应用程序和GuiTest AutoTest子目录项目,便会为此生成所有必需的代码。
我实际上想在这里实现的是,在MainWindowTest的私有区域中创建一个MainWindow实例,然后编写一些单元测试以检查小部件的存在,然后基于键盘和鼠标事件进行一些操作测试。但是,由于我什至无法访问这些小部件,因此很难做到这一点。
我已经在网上浏览了几个“解决方案”,但是似乎都不是干净的解决方案。我希望能够立即执行QVERIFY2(win.pushButton,“未创建pushButton”。),但正如我所说,pushButton无法访问。