为 wxPython 编写单元测试
Writing unit test for wxPython
我有一个构建的应用程序,其中包含一个使用 wxPython 制作的 window,其中包含一个文本框以从用户那里获取输入,并且 enter
事件绑定到一个函数并发送一个 wx.Frame反对。使用 self.txt.GetValue()
访问输入值
我需要为该函数编写一些单元测试,但似乎无法找到一种方法来创建参数并将其传递给函数,而该值仍可通过相同的语句访问。
我还找到了一些用于测试 python 应用程序的模块,包括 wxPython 页面 (pyunit) 上的一个模块,但如何传递值的主要直觉并不清楚。
我该怎么做?
如果将函数与 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
我有一个构建的应用程序,其中包含一个使用 wxPython 制作的 window,其中包含一个文本框以从用户那里获取输入,并且 enter
事件绑定到一个函数并发送一个 wx.Frame反对。使用 self.txt.GetValue()
我需要为该函数编写一些单元测试,但似乎无法找到一种方法来创建参数并将其传递给函数,而该值仍可通过相同的语句访问。
我还找到了一些用于测试 python 应用程序的模块,包括 wxPython 页面 (pyunit) 上的一个模块,但如何传递值的主要直觉并不清楚。
我该怎么做?
如果将函数与 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