Я хочу провести тест, чтобы увидеть, существует ли кнопка, но она не видит тест

#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. Попробуйте запустить этот файл отдельно, вне вашего набора тестов и вашей среды разработки.