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