为wxPython编写单元测试

时间:2018-09-25 04:36:49

标签: python unit-testing wxpython

我有一个内置的应用程序,其中包含一个用wxPython制作的窗口,该窗口包含一个文本框以接受用户输入,并且enter事件绑定到一个函数并向其发送一个wx.Frame对象。使用self.txt.GetValue()

访问输入值

我需要为该函数编写一些单元测试,但似乎无法找到一种方法来创建该参数并将该参数传递给该函数,使得该值仍可通过同一条语句访问。

我还发现了许多用于测试python应用程序的模块,其中包括wxPython页面上的一个模块(pyunit),但不清楚如何传递值的主要直觉。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

如果将功能与wxPython解耦,则可以轻松对其进行单元测试。假设您有一个绑定到事件处理程序的小部件,如下所示:

def on_text_change(self, event):
    my_module.do_something_with_text(self.txt.GetValue())

现在,您可以为my_module.do_something_with_text添加单元测试,因为它不依赖于wxPython。

如果要创建相当于自动UI测试的内容,可以使用UIActionSimulator-https://wxpython.org/Phoenix/docs/html/wx.UIActionSimulator.html