|
|
|
|
@ -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)
|
|
|
|
|
|
|
|
|
|
|