如何使用Python和PyQt对我的GUI程序进行单元测试?

时间:2013-02-23 19:09:06

标签: python qt unit-testing pyqt

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

单元测试通常会对函数进行简单输入,并检查其简单输出。但是我该如何测试用户界面?

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

2 个答案:

答案 0 :(得分:20)

有关使用Python的单元测试框架和QTest here的好教程。

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

答案 1 :(得分:0)

如果您更喜欢使用 pytest,也可以选择 pytest-qt

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!"