django automatic test learning
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
from django.utils import timezone
from .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
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
pythonmanage.pytestpollslooked for tests in thepollsapplicationit found a subclass of thedjango.test.TestCaseclassit created a special database for the purpose of testingit looked for test methods - ones whose names begin withtestintest_was_published_recently_with_future_questionit created aQuestioninstance whosepub_datefield is 30 days in the future… and using theassertIs()method, it discovered that itswas_published_recently()returnsTrue, though we wanted it to returnFalse