maziang
马子昂 5 months ago
parent bdfbaabf22
commit aefa550cc8

@ -7,10 +7,6 @@ from unittest.mock import patch, MagicMock
# 添加src目录到Python路径
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', 'src'))
# 使用unittest.mock模拟QApplication避免Qt初始化
with patch('PyQt5.QtWidgets.QApplication'):
from src.main_window import MainWindow
class TestMagicWordApplication(unittest.TestCase):
def setUp(self):
"""
@ -18,14 +14,25 @@ class TestMagicWordApplication(unittest.TestCase):
- 初始化测试环境
- 创建测试数据
"""
# 使用MagicMock替代实际QApplication实例
# 使用unittest.mock模拟QApplication避免Qt初始化
self.app_patcher = patch('PyQt5.QtWidgets.QApplication')
self.mock_app = self.app_patcher.start()
self.mock_app_instance = MagicMock()
self.mock_app.return_value = self.mock_app_instance
# 创建MainWindow实例
self.window = MainWindow()
# 模拟导入MainWindow
with patch('PyQt5.QtWidgets.QApplication'), \
patch('PyQt5.QtWidgets.QMainWindow'), \
patch('PyQt5.QtWidgets.QTextEdit'), \
patch('PyQt5.QtWidgets.QAction'), \
patch('PyQt5.QtWidgets.QFileDialog'), \
patch('PyQt5.QtWidgets.QVBoxLayout'), \
patch('PyQt5.QtWidgets.QWidget'), \
patch('PyQt5.QtWidgets.QLabel'), \
patch('PyQt5.QtWidgets.QStatusBar'), \
patch('PyQt5.QtWidgets.QMessageBox'):
from src.main_window import MainWindow
self.window = MainWindow()
def tearDown(self):
"""
@ -43,12 +50,12 @@ class TestMagicWordApplication(unittest.TestCase):
- 检查初始状态
"""
# 验证窗口标题
with patch.object(MainWindow, 'windowTitle', return_value='MagicWord'):
with patch.object(self.window, 'windowTitle', return_value='隐私学习软件 - 仿Word'):
title = self.window.windowTitle()
self.assertEqual(title, 'MagicWord')
self.assertEqual(title, '隐私学习软件 - 仿Word')
# 验证窗口不是全屏
with patch.object(MainWindow, 'isFullScreen', return_value=False):
with patch.object(self.window, 'isFullScreen', return_value=False):
fullscreen = self.window.isFullScreen()
self.assertFalse(fullscreen)
@ -58,12 +65,12 @@ class TestMagicWordApplication(unittest.TestCase):
- 验证文件打开保存等功能
"""
# 模拟菜单栏存在
with patch.object(MainWindow, 'menuBar', return_value=MagicMock()):
with patch.object(self.window, 'menuBar', return_value=MagicMock()):
menubar = self.window.menuBar()
self.assertIsNotNone(menubar)
# 模拟状态栏存在
with patch.object(MainWindow, 'statusBar', return_value=MagicMock()):
with patch.object(self.window, 'statusBar', return_value=MagicMock()):
statusbar = self.window.statusBar()
self.assertIsNotNone(statusbar)

Loading…
Cancel
Save