Python django TDD测试处理post请求
前端代码
<html>
<title>To-Do lists</title>
<body>
<h1>Hello World</h1>
<form method="post">
<input name="item_text" id="id_new_item" placeholder="Enter a to-do item"/>
{% csrf_token %}
</form>
<table id ="id_list_table">
<tr>
<td>{{ new_item_text }}</td>
</tr>
</table>
</body>
</html>
简单来说就是实现在文本框填数据提交后数据返回到table中
功能测试主要代码
input=self.browser.find_element_by_id("id_new_item")
self.assertEqual(
input.get_attribute('placeholder'),#获取属性里的值
'Enter a to-do item'
)
input.send_keys('Buy')#填入文本框
input.send_keys(Keys.ENTER)#回车
time.sleep(1)
table=self.browser.find_element_by_xpath('//*[@id="id_list_table"]/tbody/tr/td[1]')
self.assertEqual(table.text,'Buy')
self.fail("Finish test")#提前结束测试
单元测试tests.py主要代码
def test_can_save_a_POST_request(self):#测试post请求响应,是否返回文本框的数据
response=self.client.post('/',data={'item_text':'A new list item'})
self.assertIn('A new list item',response.content.decode())
self.assertTemplateUsed(response, 'home.html') # 检测响应是否同一个模板渲染的
视图views.py
from django.http import HttpResponse
from django.shortcuts import render
def home_page(request):
data={}
if request.POST:
data["new_item_text"]=request.POST['item_text']
return render(request,'home.html',data)
# Create your views here.
浙公网安备 33010602011771号