gpt4 book ai didi

c++ - 在 Qt 中做 Gui 测试

转载 作者:IT老高 更新时间:2023-10-28 22:41:17 32 4
gpt4 key购买 nike

我正在尝试对 gui 应用程序进行压力测试,但我不太确定如何执行此操作。首先,我有一个应用程序,所有 gui 和帮助函数都位于其中。我还制作了两个外部库,该应用程序使用它们。这些库只做一些小事情,我想在 QtMock 启动并工作时对这些部分进行单元测试(由于某种原因,目前它与 qt 4.8 不兼容)。

我想对主应用程序进行压力测试,而不必更改太多代码。我查看了 QtTestLib,它看起来非常基本,好像您必须将该代码与主代码集成,这是我不想要的。我真的很想在应用程序之外进行测试,并且想知道如何做到这一点?不太确定是否应该将我的 enitre gui 应用程序导出为可以导入测试的外部库?

您通常如何执行此操作来对整个事情进行真正的压力测试。不知道我应该如何以及在哪里做测试代码,如果有任何帮助,我将不胜感激!

最佳答案

根据我的经验,您使用的任何测试工具包要么会以微妙的方式将自己融入您的代码,要么永远无法达到您需要的深度(或两者兼而有之)。

可以编写自定义测试代码,并为正在测试的应用程序保持代码干净。我是在一个需要自动测试的大型 Windows C++ gui 应用程序上完成的。基本思想是创建一个新项目,引用基础项目中的所有代码,并编写一组新的类,这些类派生自基类并包含您的测试代码。

在我的例子中,我创建了一个新的 Visual Studio 项目,但是您可以对一个新的 Qt 项目执行相同的操作。当然,基类可能必须重构以公开要测试的功能。测试类根据需要调用基类函数 - 如果需要,您可以创建一个完整的测试 gui。

作为一个非常简单的例子,如果这是你的项目......

class MyView : public QMainWindow {}
class MyController {}
class MyModel {}

...创建一个新项目,拉入您的基本代码,然后添加这些:

class TestView       : public MyView {}
class TestController : public MyController {}
class TestModel : public MyModel {}

最后,经过一些工作,零测试代码在我的基类中,我仍然能够在一个漂亮的测试 gui 中连接并启动各种重复的自动测试。

我并不是说这是一项简单或微不足道的任务。我只是鼓励你,这是可以做到的。 :-)

编辑:这不是对嵌入式单元测试的批评,如果您能从项目开始就将其落实到位,那就太好了。但这是一个大型遗留应用程序,我没有将测试代码注入(inject)基本代码是一个硬性要求。

关于c++ - 在 Qt 中做 Gui 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10525267/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com