测试主页
测试将是一个反复出现的主题,我们将在整个教程系列中一起探讨不同的概念和策略。
我们来开始写第一个测试。现在,我们将在boards应用程序内的tests.py文件中操作
1 2 3 4 5 6 7 8 |
|
这是一个非常简单但非常有用的测试用例,我们测试的是请求该URL后返回的响应状态码。状态码200意味着成功。
请求一下主页后,我们可以在控制台中看到响应的状态代码:
如果出现未捕获的异常,语法错误或其他任何情况,Django会返回状态代码500,这意味着内部服务器错误。现在,想象我们的应用程序有100个视图。如果我们为所有视图编写这个简单的测试,只需一个命令,我们就能够测试所有视图是否返回成功代码,因此用户在任何地方都看不到任何错误消息。如果没有自动化测试,我们需要逐一检查每个页面。
执行Django的测试套件:
1 2 3 4 5 6 7 8 |
|
现在我们可以测试Django是否在请求的URL的时候返回了正确的视图函数。这也是一个有用的测试,因为随着开发的进展,您会发现urls.py模块可能变得非常庞大而复杂。URL conf 全部是关于解析正则表达式的。有些情况下有一个非常宽容的URL(译注:本来不应该匹配的,却因为正则表达式写的过于宽泛而错误的匹配了),所以Django最终可能返回错误的视图函数。
我们可以这样做:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
在第二个测试中,我们使用了resolve函数。Django使用它来将浏览器发起请求的URL与urls.py模块中列出的URL进行匹配。该测试用于确定URL / 返回 home 视图。
再次测试:
1 2 3 4 5 6 7 8 9 |
|
要查看有关测试执行时更详细的信息,可将verbosity的级别设置得更高一点:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
Verbosity决定了将要打印到控制台的通知和调试信息量; 0是无输出,1是正常输出,2是详细输出。