通过针对已知良好或已知错误的字典实例化表单对象,可以轻松地测试表单清理。可以通过采用相同的dicts并使用测试客户端来测试相关的视图逻辑。
但是,我们仍然留下了实际HTML表单元素的基本问题。如果我使用了错误的方法怎么办?或者我在行动中有拼写错误?或者我忘记了CSRF_Token?如何编写实际测试用户可能遇到的行为的单元测试?
我真的需要使用机械化吗?
或者是人们使用.get(url)解析表单元素并查看响应的html内容?有更清洁的方法吗?
答案 0 :(得分:1)
这不仅与Django HTML测试有关,而且与您需要测试HTML行为的任何其他应用程序有关。
您可以使用requests等库来使用不同的方法(GET / POST /等)从浏览器角度测试表单。
要进行更多用户互动测试,您可以使用Selenium,但我个人更喜欢Splinter。在splinter中,您实例化了一个名为browser
的东西,您可以将其用作真正的浏览器。然后在浏览器中,您可以填充文本框,按下按钮等,然后测试行为。
以下是分段网站的代码段:
from splinter.browser import Browser
browser = Browser()
# Visit URL
url = "http://www.google.com"
browser.visit(url)
browser.fill('q', "#cobrateam")
# Find and click the 'search' button
button = browser.find_by_css(".lsb")
# Interact with elements
button.click()
if browser.is_text_present("did not match any documents"):
print "nobody likes us =("
else:
print "we're popular =)"
在那里浏览器将打开,将导航到谷歌,填写q字段,单击搜索按钮,然后测试搜索结果。正如您所看到的,该库非常易于使用,您可以使用它进行非常复杂的测试。
答案 1 :(得分:0)
这可以使用Django 1.4中添加的LiveServerTestCase来处理。