https://docs.djangoproject.com/en/2.0/intro/tutorial01/
官方文档上demo作为例子!
(目录结构)
Create a test to expose the bug
cmdb/tests.py
import datetime
from django.test import TestCasefrom django.utils import timezonefrom .models import Question
class QuestionModelTests(TestCase): def test_was_published_recently_with_future_question(self): """ was_published_recently() returns False for questions whose pub_date is in the future. """ time = timezone.now() + datetime.timedelta(days=30) future_question = Question(pub_date=time) self.assertIs(future_question.was_published_recently(), False)
打开terminal
$ python manage.py test cmdb
1.运行完后在cmdb这目录下寻找tests.py这个文件,
2.找到TestCase的subclass
3.找到里面以test开头的method(所以测试方法必须以test开头)
4.in test_was_published_recently_with_future_question
it created a Question
instance whose pub_date
field is 30 days in the future
5..… and using the assertIs()
method, it discovered that its was_published_recently()
returns True
, though we wanted it to return False
python manage.py test polls
looked for tests in the
polls
applicationit found a subclass of the
django.test.TestCase
classit created a special database for the purpose of testingit looked for test methods - ones whose names begin with
test
in
test_was_published_recently_with_future_question
it created a
Question
instance whose
pub_date
field is 30 days in the future… and using the
assertIs()
method, it discovered that its
was_published_recently()
returns
True
, though we wanted it to return
False