Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.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
Python:日期更改的单元测试_Python_Django_Unit Testing_Testing - Fatal编程技术网

Python:日期更改的单元测试

Python:日期更改的单元测试,python,django,unit-testing,testing,Python,Django,Unit Testing,Testing,我为Django表单定义做了以下工作(是的,很尴尬): 正如您现在可能已经猜到的,只要date.today()不发生变化,这种方法就可以正常工作。我所有的考试都通过了。但是,一旦日期发生更改,则会错误地将初始日期的选择标记为“今天” 此后,我发现这是多么愚蠢,并将代码移到了\uuuu init\uuuu方法中 现在我想为它写一个测试。有人知道当日期更改时,我如何测试正确的工作日是否标记为(今天)?索引越界错误: Watch out for [weekday_index+1] for 'sunda

我为Django表单定义做了以下工作(是的,很尴尬):

正如您现在可能已经猜到的,只要
date.today()
不发生变化,这种方法就可以正常工作。我所有的考试都通过了。但是,一旦日期发生更改,则会错误地将初始日期的选择标记为“今天”

此后,我发现这是多么愚蠢,并将代码移到了
\uuuu init\uuuu
方法中


现在我想为它写一个测试。有人知道当日期更改时,我如何测试正确的工作日是否标记为
(今天)

索引越界错误:

Watch out for [weekday_index+1] for 'sunday', 
use [(weekday_index+1)%7] to wrap down to 0.  
将选项提取到一个方法中,使其易于测试。如果该方法只包含python而不包含django,那么它将更容易测试,因此也更容易理解。我也同意您应该创建一个\uuuuu init\uuuu,今天可以在今天结束时改变,并且需要随之改变

def weekday_choices(self, todays_index):
    ...
    return choices_list
编辑:

  • 目前,您的代码只运行一次
  • 移动逻辑以在实例上而不是在类级别上操作
  • 使用类似于模拟date.today().weekday()的响应的库。
    • date.today()将需要返回一个使用
      返回\u iter
      的模拟
  • 实例化2个表单并断言它们的选项列表与预期一致。
    • 今天一个,明天一个
  • 你也可以模拟模测试

索引越界错误:

Watch out for [weekday_index+1] for 'sunday', 
use [(weekday_index+1)%7] to wrap down to 0.  
将选项提取到一个方法中,使其易于测试。如果该方法只包含python而不包含django,那么它将更容易测试,因此也更容易理解。我也同意您应该创建一个\uuuuu init\uuuu,今天可以在今天结束时改变,并且需要随之改变

def weekday_choices(self, todays_index):
    ...
    return choices_list
编辑:

  • 目前,您的代码只运行一次
  • 移动逻辑以在实例上而不是在类级别上操作
  • 使用类似于模拟date.today().weekday()的响应的库。
    • date.today()将需要返回一个使用
      返回\u iter
      的模拟
  • 实例化2个表单并断言它们的选项列表与预期一致。
    • 今天一个,明天一个
  • 你也可以模拟模测试

+1表示模数建议。然而,我想测试的是,如果日期发生变化,会发生什么。@NimmyLebby,我添加了一些关于MiniMock的信息。这是一个非常有用的工具来帮助测试。我不能再+1了,但我明天晚上会深入研究这个问题。听起来像是可靠的建议。谢谢+1对于模数建议。然而,我想测试的是,如果日期发生变化,会发生什么。@NimmyLebby,我添加了一些关于MiniMock的信息。这是一个非常有用的工具来帮助测试。我不能再+1了,但我明天晚上会深入研究这个问题。听起来像是可靠的建议。谢谢