Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不显示元素的情况下测试Python Tkinter GUI应用程序_Python_Testing_Tkinter_Python Unittest.mock - Fatal编程技术网

在不显示元素的情况下测试Python Tkinter GUI应用程序

在不显示元素的情况下测试Python Tkinter GUI应用程序,python,testing,tkinter,python-unittest.mock,Python,Testing,Tkinter,Python Unittest.mock,如何在不显示元素的情况下测试tkinter gui?这将使测试更快。下面的代码可以工作,但在运行测试后必须关闭tkinter窗口才能结束,是否有可能在不运行tkinter应用程序的情况下测试Next类,或者干脆不显示它?我听说过unittest.mock,但当我试图模拟tk.tk()时,它崩溃了。 相关: 和测试等级: class TestNext(unittest.TestCase): @classmethod def setUpClass(cls): pass @classmet

如何在不显示元素的情况下测试tkinter gui?这将使测试更快。下面的代码可以工作,但在运行测试后必须关闭tkinter窗口才能结束,是否有可能在不运行tkinter应用程序的情况下测试Next类,或者干脆不显示它?我听说过
unittest.mock
,但当我试图模拟tk.tk()时,它崩溃了。 相关:

和测试等级:

class TestNext(unittest.TestCase):

@classmethod
def setUpClass(cls):
    pass

@classmethod
def tearDownClass(cls):
    pass

def setUp(self):
    self.root = tk.Toplevel()
    self.title = 'test_next'
    self.kwargs = {'cancel': None}


def tearDown(self):
    self.next = None
    if self.root:
        self.root.destroy()

def test_init(self):
    page = Next(self.root, self.title, **self.kwargs)

我发现:
self.root.after(time_in_ms,lambda:self.root.destroy())
有效,但有更好的解决方案吗?顺便说一句,self.root.after(time_in_ms,self.root.destroy)更短
class TestNext(unittest.TestCase):

@classmethod
def setUpClass(cls):
    pass

@classmethod
def tearDownClass(cls):
    pass

def setUp(self):
    self.root = tk.Toplevel()
    self.title = 'test_next'
    self.kwargs = {'cancel': None}


def tearDown(self):
    self.next = None
    if self.root:
        self.root.destroy()

def test_init(self):
    page = Next(self.root, self.title, **self.kwargs)