前端代码
<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.