0
我想測試一些django應用程序的URL。但是,關聯的視圖鏈接到數據庫。我想要做的是嘲笑視圖方法的這些方面,但我不知道如何。如何在使用Django測試URL時模擬數據庫訪問
假設我想嘗試/signin
url,這是一種古典的簽名形式。 相關的觀點是這樣的:
def login(request):
if 'user' in request.session:
return redirect(reverse("home"))
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
return treat_login(request, username, password) # checks if couple
is present in
database, returns
pages accordingly
else:
form = LoginForm()
return render(request, 'login.html', {'form':form, })
在我的測試,我必須將login
方法沒有隱式調用,因爲我只用url
:
class Tests_urls(TestCase):
def test_signin(self):
self.client.post(reverse("login"), {"username":"login", "password":"pwd"})
self.assert_http_status(url, status, "after a standard login")
與測試的問題是,它需要一個數據庫來執行,這是我想要避免的(我不能使用嵌入式測試數據庫)。
因此,我想知道如何從測試的角度嘲笑treat_login
方法。
看起來很有希望,我馬上檢查一下。 – fxm