由于 Django 测试框架这样做,我不确定你在问什么。
你想测试一个有表单的 Django 应用吗?
- 在这种情况下,您需要执行初始 GET
- 然后是生成的 POST
你想编写(和测试)一个将表单提交到另一个站点的 Django 应用程序吗?
以下是我们如何使用表单测试 Django 应用程序。
class Test_HTML_Change_User( django.test.TestCase ):
fixtures = [ 'auth.json', 'someApp.json' ]
def test_chg_user_1( self ):
self.client.login( username='this', password='this' )
response= self.client.get( "/support/html/user/2/change/" )
self.assertEquals( 200, response.status_code )
self.assertTemplateUsed( response, "someApp/user.html")
def test_chg_user( self ):
self.client.login( username='this', password='this' )
# The truly fussy would redo the test_chg_user_1 test here
response= self.client.post(
"/support/html/user/2/change/",
{'web_services': 'P',
'username':'olduser',
'first_name':'asdf',
'last_name':'asdf',
'email':'asdf@asdf.com',
'password1':'passw0rd',
'password2':'passw0rd',} )
self.assertRedirects(response, "/support/html/user/2/" )
response= self.client.get( "/support/html/user/2/" )
self.assertContains( response, "<h2>Users: Details for", status_code=200 )
self.assertContains( response, "olduser" )
self.assertTemplateUsed( response, "someApp/user_detail.html")
注意 - 我们不会详细解析 HTML。如果它有正确的模板和正确的响应字符串,它必须是正确的。