【发布时间】:2019-05-07 13:01:19
【问题描述】:
假设一个脚本启动 TKinter GUI(例如,scripts/launch_GUI.py)并且是 PyPI 包的一部分(例如,MyPackage)。
.
├── appveyor.yml
├── MyPackage
│ ├── TkOps.py
│ └── CoreFunctions.py
├── README.md
├── requirements.txt
├── scripts
│ ├── launch_CLI.py
│ └── launch_GUI.py
├── setup.py
└── tests
└── MyPackage_test.py
启动脚本非常简约:
#!/usr/bin/env python2
if __name__ == '__main__':
import sys, os
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'MyPackage'))
import TkOps
TkOps.start_GUI()
如果 TKinter GUI 在启动 launch_GUI.py 时正确启动,您会建议评估什么 unittest?
注意:我只想评估启动脚本是否正常工作并启动 GUI,而不是用户是否可以与 GUI 交互。
【问题讨论】:
-
不能查看窗口的
state()吗? -
@TeeKea 你能进一步解释一下吗?我不知道函数
state并且似乎找不到关于它的任何信息:>>> import tkinter >>> help("state") no Python documentation found for 'state' -
请看下面的链接。我想您可以检查
state()是否为'normal。你能展示一些你用来创建顶级窗口的代码吗? effbot.org/tkinterbook/wm.htm#Tkinter.Wm.state-method -
你的 start_GUI() 函数是做什么的?它会创建一个对象吗?如果是这样:为什么不测试对象的类型,如果它是
那么你知道它至少启动了一个 tk 窗口。例如,在 python 解释器窗口中输入以下命令将输出上述结果:“import tkinter as tk; root=tk.Tk(); type(root)” -
上面的评论变得越来越庞大:在建议的命令中,我隐式地将根对象创建为 tkinter 窗口,然后调用 type() 来确认我的根对象的类型。如果您的函数创建一个 tkinter 窗口作为对象,您应该能够检查它的类型,确认它已创建。
标签: python python-2.7 unit-testing user-interface tkinter