|
|
1
3
您可以做的一件事是在一个单独的线程中生成主循环,并使用主线程运行实际的测试;观察主循环线程的原样。在进行断言之前,确保检查了Tk窗口的状态。 多线程处理任何代码都很困难。您可能希望将Tk程序分解成可测试的部分,而不是一次对整个程序进行单元测试(这实际上不是单元测试)。
|
|
|
2
10
底线:在导致UI事件的操作之后,在需要该事件影响的后续操作之前,使用下面的代码来泵送事件。
IPython提供了一个没有线程的优雅解决方案
而不是
对于测试,没有外部事件等待,并且测试总是“忙”,因此必须在“适当的时刻”手动(或半自动)运行循环。它们是什么?
测试表明,如果没有事件循环,可以直接更改小部件(使用
源于上述IPython过程的代码是:
(
另请注意,使用此选项:
因为两个函数都不处理 全部的 下面是一个测试用于编辑字符串值的简单弹出对话框的示例:
|
|
|
3
2
有一种技术叫做monkey patching,通过它可以在运行时更改代码。 您可以对TK类进行monkey补丁,这样mainloop实际上就不会启动程序。 在test.py中有类似的内容(未测试!):
类似于 mock 这样就不那么痛苦了。 |
|
|
wavesinaroom · 断言结构向量长度 1 年前 |
|
|
Tim Kirkwood · 比较空数据帧 1 年前 |
|
Kamran Khan · 使用单元测试ASP。NET核心 2 年前 |
|
|
paymer · 为什么我的代码没有删除我的单元测试生成的zip文件? 2 年前 |
|
|
Ricky Mo · 角度测试如何模拟导入的const 2 年前 |
|
|
Natty · Visual Studio中缺少“代码覆盖率结果” 2 年前 |