如何在GUI测试库中处理外部任意类型处理程序?

时间:2016-02-01 10:36:04

标签: c++ qt user-interface automated-tests

我正在尝试为Qt创建一个GUI测试库。该库旨在远程工作,以便我可以通过WiFi在移动设备上运行测试。它应该只为可见元素的功能提供API。

它应该是可扩展的。在Qt中,任何可见的GUI元素都是QWidget的子类。我可以对QPushButton(例如点击)或QLineEdit(写文本)进行硬编码处理,但请注意用户可以定义自己的QWidget子类,其中一些可能完全代表新的GUI。

在Java中,我可以解决这个问题,因为类类型本质上是Class类型的变量。所以我可以:

  public static void registerTestingHandler(Class<? extends java.awt.Component> GUIObject, Class<? extends TestingApi> apiHandler) {
    ...
  }

TestingApi将是一些接受消息作为字符串的基本接口,例如:handler.doAction("click");

C ++没有这种反思。我还了解到,获取可用于此目的的类'构造函数地址是不可能的。我认为整个设计应该在C ++中看起来不同。

因此问题是:如何允许用户为特定的类实例注册抽象处理程序?

0 个答案:

没有答案