parent
							
								
									48fc0130f2
								
							
						
					
					
						commit
						80997f29e2
					
				| @ -0,0 +1,58 @@ | ||||
| import unittest | ||||
| from unittest.mock import patch, mock_open | ||||
| import jieba | ||||
| import wordcloud | ||||
| 
 | ||||
| class TestWordCloudGeneration(unittest.TestCase): | ||||
|      | ||||
|     @patch('builtins.open', new_callable=mock_open, read_data='AI技术是未来,GPT非常强大') | ||||
|     def test_file_reading(self, mock_file): | ||||
|         """ | ||||
|         测试文件读取功能 | ||||
|         """ | ||||
| 
 | ||||
|         with open('AI统计弹幕.txt', encoding='utf-8') as f: | ||||
|             content = f.read() | ||||
|         mock_file.assert_called_once_with('AI统计弹幕.txt', encoding='utf-8') | ||||
|         self.assertEqual(content, 'AI技术是未来,GPT非常强大') | ||||
| 
 | ||||
|     def test_jieba_cut(self): | ||||
|         """ | ||||
|         测试 jieba 分词功能 | ||||
|         """ | ||||
|         test_text = 'AI技术是未来,GPT非常强大' | ||||
|         expected_result = ['AI', '技术', '是', '未来', ',', 'GPT', '非常', '强大'] | ||||
|          | ||||
|         # 调用 jieba.lcut() 进行分词 | ||||
|         result = jieba.lcut(test_text) | ||||
|          | ||||
|         self.assertEqual(result, expected_result) | ||||
| 
 | ||||
| 
 | ||||
|     @patch('wordcloud.WordCloud.to_file') | ||||
|     def test_wordcloud_stopwords(self, mock_to_file): | ||||
|         """ | ||||
|         测试词云是否不包含停用词 | ||||
|         """ | ||||
|         test_text = 'AI技术是未来,GPT非常强大' | ||||
|         txt_list = jieba.lcut(test_text) | ||||
|         string = ' '.join(txt_list) | ||||
| 
 | ||||
|         wc = wordcloud.WordCloud( | ||||
|             stopwords={'是', '未来'}  # 停用词 | ||||
|         ) | ||||
| 
 | ||||
|         wc.generate(string) | ||||
|         wc.to_file('out.png') | ||||
| 
 | ||||
|         # 检查生成的词云中是否包含停用词 | ||||
|         self.assertIn('AI', wc.words_) | ||||
|         self.assertIn('GPT', wc.words_) | ||||
|         self.assertNotIn('是', wc.words_) | ||||
|         self.assertNotIn('未来', wc.words_) | ||||
| 
 | ||||
|         # 验证文件保存调用 | ||||
|         mock_to_file.assert_called_once_with('out.png') | ||||
| 
 | ||||
| if __name__ == '__main__': | ||||
|     unittest.main() | ||||
					Loading…
					
					
				
		Reference in new issue