32

我听说单元测试是保持代码正常工作的好方法。

单元测试通常将一个简单的输入放到一个函数中,并检查它的简单输出。但是如何测试 UI?

我的程序是用 PyQt 编写的。我应该选择 PyUnit 还是 Qt 的内置 QTest?

4

2 回答 2

31

这里有一个关于使用 Python 的单元测试框架和 QTest 的很好的教程旧链接不再起作用。来自 WayBackMachine,页面显示在这里)。

这不是选择一个或另一个。相反,它是关于一起使用它们。 QTest 的目的只是模拟击键、鼠标点击和鼠标移动。Python 的单元测试框架处理其余的工作(设置、拆卸、启动测试、收集结果等)。

于 2013-02-23T19:20:29.537 回答
3

作为另一种选择,pytest-qt如果您更喜欢使用pytest

https://pytest-qt.readthedocs.io/en/latest/intro.html

它允许您测试pyqtpyside应用程序,并允许模拟用户交互。这是其文档中的一个小示例:

def test_hello(qtbot):
    widget = HelloWidget()
    qtbot.addWidget(widget)

    # click in the Greet button and make sure it updates the appropriate label
    qtbot.mouseClick(widget.button_greet, QtCore.Qt.LeftButton)

    assert widget.greet_label.text() == "Hello!"

于 2021-06-12T20:38:28.530 回答