2013-03-02 60 views
1

假设我有一个测试视图的单元测试。该观点需要一个表格来做一些处理。我的单元测试看起来像这样:如何在Django单元测试中的请求对象中传递表单对象?

class ViewTests(TestCase): 
def setUp(self): 
    self.factory = RequestFactory() 

def test_login_view_post(self): 
    # require form object to pass it in post function 
    response = self.client.post(reverse('login')) 
    self.assertContains(response, "Your username and password didn't match", status_code=200) 

有人能告诉我如何在post函数中传递表单对象吗?

谢谢。

回答

2

其实你不传于后表单对象,你传递表单数据,就好像形式提交(这是要模拟什么)

post_data = { 
    "username": "foo", 
    "password": "bar" 
} 
response = self.client.post(reverse('login'), data=post_data) 

或者你可以简单地包括在另一个测试中形成并用数据实例化以测试其有效性。

def test_form(self): 
    data = { 
     "username": "foo", 
     "password": "bar" 
    } 
    form = LoginForm(data) 
    self.assertFalse(form.is_valid())