我应该在单元测试中测试视图的属性吗?

2024-05-18 23:40:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道什么是单元测试Django视图的正确方法,例如:

class UserListView(LoginRequiredMixin, ListView):

    model = get_user_model()
    template_name = 'users/user_list.html'
    ordering = 'last_name'

    def get_queryset(self):
        self.queryset = self.model.objects.all().annotate(
            full_name=Concat('first_name', Value(' '), 'last_name')
        )
        return super().get_queryset()

我目前正在单元测试get_queryset方法。这给了我这个视图100%的覆盖率,但是我是否也应该测试,例如,单元测试中的默认顺序?或者应该只在集成/系统测试中进行测试(例如,使用Selenium或Django的客户机)?你知道吗

一方面,ordering属性是视图的一部分,它影响视图的行为,另一方面,它仅由第三方代码使用。你知道吗


Tags: django方法nameself视图getmodel单元测试
1条回答
网友
1楼 · 发布于 2024-05-18 23:40:23

在我看来,是的,你应该增加一个测试。一方面,您可以打赌Django已经有了一个测试来确保这个属性按照广告的那样工作(Django有很好的测试覆盖率)。你知道吗

然而,我的推理是这样的:假设上游ListView决定将该属性的名称更改为其他名称。比如说,他们把它改名为list_ordering。你知道吗

快进7个月后,您将增加Django的版本号以尝试一些闪亮的新功能。写UserListView现在是遥远的记忆。作为一名开发人员,您希望知道您请求的默认顺序在较新版本的Django中已经停止工作,而这里失败的测试将向您表明这一点—它会引起您对代码中需要立即更新的某些区域的注意。你知道吗

当然,在升级第三方库时,我们应该仔细阅读发行说明,但最好是让测试直接与您对话!你知道吗

相关问题 更多 >

    热门问题