问题标签 [qtestlib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3275 浏览

c++ - QTcpClient 成功连接,但没有连接到我的服务器。它在哪里连接?

我已经使用 Qt 的 Tcp Sockets API 成功构建了一个瘦客户端/服务器。我知道它工作得很好,因为我已经通过网络发送了大量数据并对其进行了验证。但是,我的项目经理想要一套单元测试,我正在使用 Qt 的测试库来实现它们。

无论如何,我正在尝试设置一些虚拟服务器来简单地从 QTcpSocket 接收数据,以验证单元测试中的 sendData() 方法。当我连接测试套接字时,显示它已连接,但连接虚拟服务器及其虚拟套接字的插槽从未被调用!

谁能看到我在这里做错了什么?(我已将代码剥离到仅在测试类中似乎损坏的部分)

从 tst_tcpcommsocket.h

来自 tst_tcpcommsocket.cpp

测试运行的输出:

0 投票
1 回答
238 浏览

qt - QTestLib:测试目标=应用程序的问题

我的单元测试项目中的依赖项有问题。

我的项目结构如下:

MyProject.pro:

src.pro:

假设 ClassA 在 ClassA.cpp 中调用 ClassB:

现在我想对 ClassA 进行单元测试。我找到了两种方法。第一个是将 src-Subproject 转换为库(TARGET = lib in src.pro)。然后我将以下行添加到 tests.pro 中,一切正常:

第二个是命名 test.pro 中 ClassA 使用的所有文件。这意味着我的 tests.pro 看起来像:

我不能使用第一个解决方案(将 src-project 转换为 lib),所以我必须使用第二个。即使我只想测试其中一个,是否真的有必要命名所有源/标题?谢谢指教!

0 投票
1 回答
107 浏览

unit-testing - QTestLib - 验证非常量引用参数

我目前正在为我的应用程序构建一个单元测试套件,使用QTestLib. 这通常很简单,但我被困在如何验证“返回”参数上。例如,如果我有一个功能:

该函数分配withinBounds段距离分析的有界状态。如何让QCOMPARE/QVERIFY宏分析它的状态?

0 投票
4 回答
3293 浏览

c++ - 如何在使用单个测试项目时将所有 QtTestLib 单元测试的结果组合在一个文件中?

在我们的项目中,我们使用 QtTestLib 进行单元测试。原因是整个项目已经尽可能地使用 Qt 并且它是一个 GUI 应用程序,所以我们希望能够测试 GUI 界面。

我们的项目是由 MSVC 编译的,所以我们不希望每个测试都有一个单独的项目文件,因为它会使解决方案变得混乱。因此,我们为所有测试创建了一个项目。所有测试都应该在 CIS(持续集成)上自动化,因此我们尝试使用一些 XSLT 转换通过 XML 格式的输出文件将测试插入 Hudson。

但似乎测试的输出存在问题。如果您对所有测试使用单个 main() 并且仅将 cmd 行参数传输到每个测试:

然后你会得到一个被多次重写的结果文件。因此,如果您想使用输出文件(例如 xml)使其自动化,您将只获得其中的最后一个结果。所有其他将被覆盖。

我们已经尝试过这种方法,它无法让您使用像 Hudson 这样的持续集成系统。所以我的问题是:有没有机会将结果附加到一个输出文件中?当然,我们可以使用一些变通方法,例如通过 QTest::qExec() 运行每个测试并使用修改后的参数将结果写入单独的文件中,但这似乎不是最好的方法。理想情况下,我希望有一个结果文件来与 CIS 一起使用。

0 投票
1 回答
1824 浏览

c++ - QTestLib 单元测试框架 + Gmock (创建 QTCPServer - Mock Object)

我正在使用 Qt 的 QTestLib 单元测试框架 + GMOck。

我正在尝试使用 gMock 设置模拟服务器,以便在单元测试中简单地从 QTcpSocket 接收数据到 VerifySendData() 方法。

如果有人能给我一个例子,我如何创建模拟对象 gMOCK(期望调用,创建模拟对象)

0 投票
1 回答
575 浏览

c++ - 如何用 QTest 测试 QTableView 版本?

我想用 QTest 模拟 QTableView 单元格的版本。

我尝试了不同的方法,但没有任何成功:

我也在三个方法中添加了没有任何成功

谢谢你的帮助。

0 投票
1 回答
1562 浏览

qtestlib - QTest::mouseClick 上 QListWidget 的问题

我正在尝试使用 QTest 进行一些测试。我有一个 QListWidget,我想点击它来进行选择。但是点击之后,什么都没有被选中。有没有人有任何想法?

这是我的测试课

下面是测试类

这是用于显示问题的TestDialog类

0 投票
1 回答
2099 浏览

unit-testing - 如何从 QTestLib/QTest 获取有关测试失败的信息

我正在使用 QTestLib 库和 QTest 来运行我的单元测试。我正在使用 Windows 7 并使用带有 MVSC 2010 编译器的 Qt 4.8。当我使用以下方法运行测试时:

我在控制台中得到输出:

但是,我的要求是在我的 GUI 中为每个测试槽显示此消息。我做了一些研究,发现qtestlog.cpp使用自己的 messageHandler 来管理测试输出并将结果显示为 PASS 或 FAIL 以及失败消息、行号等。有什么方法可以处理 QTest 的这个 messageHandler我的 GUI 应用程序?

0 投票
1 回答
948 浏览

qt - QTest:可以测试拖放吗?

我尝试使用简单的序列来测试拖放:mousePress + mouseMove + mouseRelease。但这是行不通的。

我调查了 qtest 源并发现,移动事件是通过主调度程序 processEvent() 测试的。我还在 qt bug-tracker 中发现了一些错误:1 , 2

所以,我认为,在最新的稳定 Qt4 下测试拖放是不可能的。有这方面的成功案例吗?

0 投票
0 回答
630 浏览

qt - 尝试在单元测试(QTestLib)中设置 QDeclarativeScriptString

我正在尝试为我的2D 游戏框架(它是 QML 扩展)的一部分创建基准测试,并且在设置 QOBject 的声明性脚本属性时遇到问题。

财产声明:

我更改脚本的尝试之一是这样的:

但它不起作用(运行基准测试,但不要向控制台写入任何内容)。

我尝试使用 setProperty 并手动创建 QDeclarativeScriptString 并设置属性,但没有任何效果。

当我尝试创建 QDeclarativeScriptString 时,它失败了:

编码:

输出:

有什么帮助吗?

谢谢