You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为返回列表的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 15:06:07