创建web app时,Django会在web app目录下生成一个tests.py文件,测试程序写在这个文件里。
注意三点:
import datetime
from django.utils import timezone
from django.test import TestCase
from .models import Question
class QuestionMethodTests(TestCase):
def test_was_published_recently_with_future_question(self):
"""
was_published_recently() should return False for questions whose
pub_date is in the future.
"""
time = timezone.now() + datetime.timedelta(days=30)
future_question = Question(pub_date=time)
self.assertEqual(future_question.was_published_recently(), False)
注:assert()方法系包括:assertEqual() 、assertContains()、assertQuerysetEqual()等
自动化测试时,会创建新的数据库,新数据库里是没有记录的,需要在测试程序里生成。
可以用如下代码,得到服务器返回浏览器的html代码及上下文信息
response = self.client.get(reverse('polls:index'))
通过以下命令运行测试程序:
$ python manage.py test AppName