gpt4 book ai didi

python - 我应该在单元测试中测试 View 的属性吗?

转载 作者:太空宇宙 更新时间:2023-11-04 05:12:36 26 4
gpt4 key购买 nike

我想知道对 Django View 进行单元测试的正确方法是什么,例如这个:

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% 覆盖了这个 View ,但我是否还应该测试,例如,在单元测试中的默认排序?或者这应该只在集成/系统测试中进行测试(例如使用 Selenium 或 Django 的客户端)?

一方面,ordering 属性是 View 的一部分,它会影响 View 的行为,另一方面,它仅由第三方代码使用。

最佳答案

在我看来,是的,您应该为此添加一个测试。一方面,你可以打赌 Django 已经有一个测试来确保这个属性像宣传的那样工作(Django 有很好的测试覆盖率)。

但是,我的推理是这样的:假设上游 ListView 决定将该属性的名称更改为其他名称。例如,他们将其重命名为 list_ordering

快进 7 个月后,您提高了 Django 的版本号以尝试一些 Shiny 的新功能。编写 UserListView 现在已成为遥远的内存。作为一名开发人员,您想知道您要求的默认顺序在较新版本的 Django 中已停止工作,并且此处失败的测试将向您表明 - 它会引起您对代码中需要立即更新的某些区域的注意。

当然,在升级 3rd 方库时我们应该仔细阅读发行说明,但最好有直接与您对话的测试!

关于python - 我应该在单元测试中测试 View 的属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42636982/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com