Django - 创建一个Web投票应用 - 测试

编写测试程序

发现BUG

在Question.was_published_recently()方法的返回值中, 我们的需求是最近的一天发布的时候返回True, 然而在未来的日期发布的时候也返回True.

创建一个测试发现这个BUG

import datetime
from django.test import TestCase
from django.utils import timezone
from .models import Question

class QuestionMethodTests(TestCase):
    def test_was_published_recently(self):
        time = timezone.now() + datetime.timedelta(days=30)
        future_question = Question(pub_date = time)
        self.assertIs(future_question.was_published_recently(), False)

运行测试程序

python manage.py test polls

执行流程

  • python manage.py test polls命令会查找投票应用中所有的测试程序
  • 发现一个django.test.TestCase的子类
  • 为测试创建一个专用的数据库
  • 查找名字以test开头的测试方法
  • 在test_was_published_recently_with_future_question方法中,创建一个Question实例,该实例的pub_data字段的值是30天后的未来日期。
  • 然后利用assertIs()方法,它发现was_published_recently()返回了True,而不是我们希望的False。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值