如何为返回列表的Django模型方法编写单元测试用例
Django Task模型tag_list方法单元测试用例
以下是针对Task模型中tag_list方法的单元测试用例,覆盖多种常见场景:
from django.test import TestCase from .models import Task class TaskTagListTestCase(TestCase): def test_tag_list_with_multiple_tags(self): # 验证多个逗号分隔标签的拆分结果 task = Task(tags="工作,学习,健身") self.assertEqual(task.tag_list(), ["工作", "学习", "健身"]) def test_tag_list_with_single_tag(self): # 验证单个标签(无逗号)的返回结果 task = Task(tags="阅读") self.assertEqual(task.tag_list(), ["阅读"]) def test_tag_list_with_empty_string_tags(self): # 验证tags为空字符串时的返回结果 task = Task(tags="") self.assertEqual(task.tag_list(), [""]) def test_tag_list_with_null_tags_raises_error(self): # 验证tags为None时会触发AttributeError task = Task(tags=None) with self.assertRaises(AttributeError): task.tag_list()
补充说明
原tag_list方法存在潜在问题:当tags字段为None时,调用split方法会抛出AttributeError。如果希望方法更健壮,可以修改tag_list方法如下:
def tag_list(self): if self.tags is None: return [] return self.tags.split(',')
对应的测试用例也可调整为:
def test_tag_list_with_null_tags(self): task = Task(tags=None) self.assertEqual(task.tag_list(), [])
内容的提问来源于stack exchange,提问作者Shivʌm Singh Ʀathod
相关产品推荐
相关产品推荐

