You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.5 KiB
37 lines
1.5 KiB
2 months ago
|
import unittest
|
||
|
from unittest.mock import patch, mock_open
|
||
|
from emotion_analysis import emotion_aly
|
||
|
|
||
|
|
||
|
class TestEmotionAnalysis(unittest.TestCase):
|
||
|
# 测试 emotion_aly 函数在文件有数据时的反应
|
||
|
@patch('builtins.open', new_callable=mock_open, read_data='这场比赛真的很棒!\nAI 技术越来越强大\n非常激动!')
|
||
|
@patch('os.path.exists', return_value=True)
|
||
|
@patch('matplotlib.pyplot.savefig')
|
||
|
@patch('matplotlib.pyplot.show')
|
||
|
@patch('matplotlib.pyplot.pie')
|
||
|
@patch('matplotlib.pyplot.tight_layout')
|
||
|
def test_emotion_aly(self, mock_tight_layout, mock_pie, mock_show, mock_savefig, mock_exists, mock_file):
|
||
|
search_word = "test_aly"
|
||
|
emotion_aly(search_word)
|
||
|
|
||
|
# 验证 savefig 方法被调用
|
||
|
mock_savefig.assert_called_once()
|
||
|
# 验证 pie 方法被调用
|
||
|
mock_pie.assert_called_once()
|
||
|
|
||
|
# 测试 emotion_aly 函数在文件为空时的反应
|
||
|
@patch('builtins.open', new_callable=mock_open, read_data='')
|
||
|
@patch('os.path.exists', return_value=True)
|
||
|
@patch('matplotlib.pyplot.savefig')
|
||
|
@patch('matplotlib.pyplot.show')
|
||
|
def test_empty_file(self, mock_show, mock_savefig, mock_exists, mock_file):
|
||
|
search_word = "test_empty"
|
||
|
emotion_aly(search_word)
|
||
|
|
||
|
# 验证在文件为空的情况下,不调用 savefig 方法
|
||
|
mock_savefig.assert_not_called()
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
unittest.main()
|