代码之家  ›  专栏  ›  技术社区  ›  BЈовић

使用cxtest框架和valgrind测试qt对象

  •  0
  • BЈовић  · 技术社区  · 14 年前

    可以用吗 cxxunit 或任何其他单元测试框架(不包括 QtTestLib )测试qt小部件?

    如果是,那么还有两个问题:

    1. 怎么用?
    2. 因为我正在使用valgrind运行单元测试,这会报告一些错误吗?
    2 回复  |  直到 14 年前
        1
  •  2
  •   Caleb Huitt - cjhuitt    14 年前

    是的,这应该是可能的。我不确定CxUnit的具体情况,但理论上它是可能的。

    1. 要正确测试qt对象,您可能需要在全局设置和拆卸函数中创建/销毁qapplication对象。除非您是专门测试QApplication功能的,否则您应该只为测试应用程序的整个运行创建一个功能。这将允许您测试小部件逻辑的某些部分,但不容易测试小部件的外观或UI交互。此外,测试某些项可能依赖于让应用程序的事件循环运行,这将更加困难。
    2. Valgrind可能会报告一些错误。它还可能报告qt代码的错误,特别是留给应用程序拆卸以回收的静态分配。
        2
  •  1
  •   Frank Osterfeld    14 年前

    如果你想测试你的用户界面,我建议使用一个用户界面测试工具,比如 Squish . 我发现单元测试更适合测试小部件背后的逻辑,而不是小部件本身。如果您真的想对qt小部件进行单元测试,我认为没有比qttestlib更好的解决方案。

    瓦格林:有一个 valgrind plugin for Squish . 不过我自己也没用过那个。当然,其他单元测试可以很容易地在Valgrind中运行,尽管我不知道有什么解决方案可以完全自动化这一点。必须确保真正禁止来自外部的所有警告,这样,x11 libs中的某些错误就不会触发单元测试失败。

    推荐文章