我想知道什麼是單元測試有道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
屬性是視圖的一部分,它影響它的行爲,另一方面,它只被第三方代碼使用。
我肯定會測試它,但我的問題是,如果這應該在**單元測試**或集成/系統測試中進行測試。因爲這個屬性只是第三方代碼的某種「預設」,所以我不確定它適合在單元測試中測試,它應該儘可能少地依賴。 – rubick
這取決於你。如果你有一個單獨的集成測試套件,那麼檢查那裏的列表排序行爲可能會更好,因爲這可能只能通過修改第三方代碼來實現。單元測試'UserListView'類中存在的屬性將毫無意義,因爲它會錯過最明顯的失敗模式。 – wim
我有一個單獨的硒測試套件,所以我可以在那裏測試它。所以如果我理解正確的話,我不需要單元測試類的屬性,除非它們包含某種邏輯(例如列表理解),對吧? – rubick