2012-05-15 25 views
0

我閱讀了官方文檔來生成單元測試,但它太雜亂。我不得不生成單元測試用例爲AdminPasswordChangeForm,以及兩個在views.py被改變is_staffis_active狀態定義的函數。如何在Django中生成單元測試

我也寫了簡單的測試用例來註冊用戶。遵循的是在views.py定義的方法(這是更新使用AdminPasswordChangeForm密碼)

def user_change_password(request, id): 
    user = User.objects.get(pk=id) 
    form = AdminPasswordChangeForm(user, request.POST) 
    if form.is_valid(): 
     new_user = form.save() 
     msg = _('Password changed successfully.') 
     request.user.message_set.create(message=msg) 
     return HttpResponseRedirect('../../user/users') 
    else: 
     form = AdminPasswordChangeForm(user) 
    extra_context = {    
     'form': form, 
     'change': True 
     } 
    return direct_to_template(request,"users/user_password_change.html", 
       extra_context = extra_context) 
+3

你的問題是什麼? –

+0

我想爲view.py中定義的方法編寫單元測試用例,即user_change密碼(上面寫有問題)。 –

回答

1

有很多的教程如何編寫測試。 Django文檔(像往常一樣)很好地解釋了他們的框架在測試方面提供了什麼。此外,還有許多文章/幻燈片展示了要測試的內容。 http://toastdriven.com/blog/2011/apr/10/guide-to-testing-in-django/

至於如何測試一個視圖中,您有幾個選項

您可以使用內置的要求在工廠中生成請求對象,並直接調用你的函數。你可以確定重定向是否被返回,如果合適的話,模板或者你期望的。

或者您可以向urls.py文件中的網址發送請求。

我的意思是,以測試AdminPasswordChangeForm實例化它與用戶對象和POST字典。檢查以確保它正在創建正確的表單,如果您沒有定製過多,則可以跳過測試,因爲django在測試代碼方面做得很好。