tkinter.iconbitmap方法返回空字符串

时间:2018-07-18 06:39:36

标签: python unit-testing tkinter

我有一个应用程序:

class App(tk.Tk):
    def __init__(self):
        super().__init__()
        # Set app title
        self.app_title = 'Visual Python'
        self.title(self.app_title)
        # Set app icon
        self.iconbitmap('icon.ico')

和测试:

class TestApp(unittest.TestCase):
    def setUp(self):
        self.app = App()

    def test_app_title(self):
        self.assertEqual(self.app.title(), 'Visual Python')

    def test_app_icon(self):
        self.assertEqual(self.app.iconbitmap(), 'icon.ico')

当我使用py -3 -m unittest进行测试时,得到以下输出:

F.
======================================================================
FAIL: test_app_icon (test.test_app.TestApp)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\ismailarilik\visual-python\test\test_app.py", line 12, in 
test_app_icon
    self.assertEqual(self.app.iconbitmap(), 'icon.ico')
AssertionError: '' != 'icon.ico'
+ icon.ico

----------------------------------------------------------------------
Ran 2 tests in 0.279s

FAILED (failures=1)

为什么这里的iconbitmap方法返回一个空字符串而不是给定的'icon.ico'字符串?

1 个答案:

答案 0 :(得分:1)

Source

  

如果为位图指定了空字符串,则任何当前图标   位图被取消窗口。如果指定了位图,则   命令返回一个空字符串。否则,返回的名称   与窗口关联的当前图标位图,;如果为空,则为空字符串   窗口没有图标位图

我认为您的情况属于用粗体突出显示的最后一种情况。我的意思是,您必须确保图标设置为correctly,具体取决于您的平台。