#python #unit-testing #tkinter
Вопрос:
я хочу провести тест, чтобы проверить, существует ли кнопка, но она не видит тест.
Используя функцию invoke (), я нажимаю на нее и проверяю, существует ли она
Как это исправить?
test.py
import tkinter as tkinter
import unittest
from tkinter import *
from main import command, command2
class MyGUI(tkinter.Frame):
def __init__(self, master, **kw):
super().__init__(master, **kw)
var = IntVar()
Radiobutton(self, text='Легкая', variable=var, value=0).pack()
Radiobutton(self, text='Нормальная', variable=var, value=1).pack()
Radiobutton(self, text='Сложная', variable=var, value=2).pack()
self.button1 = Button(self, text="Играть", command=lambda: command()).pack()
self.button2 = Button(self, text="Выйти", command=lambda: command2()).pack()
class TKinterTestCase(unittest.TestCase):
def setUp(self):
self.root = tkinter.Tk()
def tearDown(self):
if self.root:
self.root.destroy()
def test_enter1(self):
v = MyGUI(self.root)
v.button1.invoke()
self.assertTrue(v.button1.winfo_ismapped())
def test_enter2(self):
v = MyGUI(self.root)
v.button2.invoke()
self.assertTrue(v.button2.winfo_ismapped())
if __name__ == "__main__":
unittest.main()
Комментарии:
1. Добавьте код, который другие люди могут просто скопировать из вопроса, запустите его и проверьте, что с ним не так.
2. @8349697,добавить main.py?
3. У вас ошибка:
AttributeError: 'NoneType' object has no attribute 'invoke'
?4. @8349697 нет,моя ошибка:Пустой набор
5. Попробуйте запустить этот файл отдельно, вне вашего набора тестов и вашей среды разработки.