Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing Django模型中的错误测试日期_Unit Testing_Date_Django Models - Fatal编程技术网

Unit testing Django模型中的错误测试日期

Unit testing Django模型中的错误测试日期,unit-testing,date,django-models,Unit Testing,Date,Django Models,我正在努力测试一些Django模型,您可以在这里看到相关代码: 型号: class Check(models.Model): date = models.DateTimeField(auto_now_add=True) ... 正在测试的功能: def get_today_records(model): today = datetime.today() today_records = model.objects.filter( date__yea

我正在努力测试一些Django模型,您可以在这里看到相关代码:

型号:

class Check(models.Model):
    date = models.DateTimeField(auto_now_add=True)
    ...
正在测试的功能:

def get_today_records(model):
    today = datetime.today()
    today_records = model.objects.filter(
        date__year=today.year,
        date__month=today.month,
        date__day=today.day)
    return today_records
测试文件:

def setUp(self):
        self.today_check = models.Check.objects.create(
            ...
            date=datetime.today())

def test_get_today_records(self):
        past_check = self.today_check
        past_check.date = datetime(2012, 1, 1)
        past_check.save()
        today_records = get_today_records(models.Check)
        self.assertTrue(self.today_check in today_records,
                        'get_today_records not returning today records')
        self.assertTrue(past_check not in today_records,
                        'get_today_records returnig older records')
错误:

======================================================================
Traceback (most recent call last):
  File "C:\..\tests.py", lin
e 32, in test_get_today_records
    'get_today_records not returning today records')
AssertionError: get_today_records not returning today records

----------------------------------------------------------------------
Ran 2 tests in 0.018s

FAILED (failures=1)
Destroying test database for alias 'default'...
我对shell进行了一些手动测试,并应用了相同的筛选条件,它返回了我两分钟前刚刚创建的记录。我肯定还缺一件东西

注:我运行此测试的日期是2013/06/1


提前感谢在您的测试函数中,
过去的\u check=self。今天的\u check
并不像您期望的那样创建新记录,它会修改数据库中的现有记录

当您执行
pass\u check.save()
时,它会使用过去的更新日期更新数据库中的单个记录

您可能希望在测试中使用以下内容:

past_check = models.Check.objects.create(date=datetime(2012, 1, 1))
而不是:

past_check = self.today_check
past_check.date = datetime(2012, 1, 1)
past_check.save()