我有一个内置的应用程序,其中包含一个用wxPython制作的窗口,该窗口包含一个文本框以接受用户输入,并且enter
事件绑定到一个函数并向其发送一个wx.Frame对象。使用self.txt.GetValue()
我需要为该函数编写一些单元测试,但似乎无法找到一种方法来创建该参数并将该参数传递给该函数,使得该值仍可通过同一条语句访问。
我还发现了许多用于测试python应用程序的模块,其中包括wxPython页面上的一个模块(pyunit),但不清楚如何传递值的主要直觉。
我该怎么做?
答案 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