我应该在Django中测试我的通用DetailView

时间:2015-07-20 04:33:37

标签: django unit-testing django-generic-views

我是TDD的新手,我正在尝试使用测试创建我的第一个Djagno应用程序。通用视图我有点困惑。我已经阅读了几个地方(包括官方文档),每个视图都应该有与之相关的测试。但我也读到你应该避免测试Django内部因为它是不必要的。

所以,如果我有这样的观点:

class ClinicView(DetailView):
    model = Clinic
    template_name = "directory/clinic.html"

使用通用视图并且工作正常,我应该为它编写测试吗?

我的直觉是我不应该这样做,因为我使用的是一般视图,但是如果我的感觉是正确的话,并没有真正找到很多东西告诉我。有什么最佳实践呢?或者如果我要将我的代码交给其他人维护,我会怎么想?我应该至少编写一个测试来确保我的模型和模板存在吗?提前致谢。

1 个答案:

答案 0 :(得分:2)

您希望避免过度测试。您应该只为自定义逻辑或经常更改的内容编写测试。

例如,如果Clinic模型有一个计算某些结果的复杂方法,那么您需要进行测试以确保这样做符合您的预期。

如果您经常更换某些内容而其他人可能会进行更改,那么您需要进行测试以确保在更改后它仍然可以正常运行。 Django视图已经过测试。除非你向View添加一堆自定义逻辑(你可能应该将它放在ModelManager中),否则用自动测试重复测试它是没有意义的。

测试很棒,我喜欢它!但我讨厌维护它,所以我的目标不是完全覆盖。一旦用测试覆盖自定义代码,就可以通过测试每一小块来获得收益递减。

我曾经为一家有点疯狂的公司工作,并希望我为自动化测试编写测试。不要像他们一样(: