我是单元测试的新手,我想要一些关于这个主题的指导。该函数首先验证datetime是否为字符串,如果是,则验证它是否为正确的ISO格式。
if not isinstance(timestamp,str):
raise ValueError("timestamp must be a string")
try:
datetime.strptime(timestamp, '%Y-%m-%dT%H:%M:%S')
return True
except ValueError:
return True
如何确定要在单元测试中包含哪些内容,以及应该注意哪些内容?
发布于 2018-08-10 19:03:43
关键是要想出边缘情况。这在很大程度上依赖于问题域的经验-你在过去看到过处理日期时间的错误。但幸运的是,你总是可以在发现和修复But的时候添加更多的单元测试,或者在等待Lyft或其他东西的时候考虑一些奇怪的情况。
datetimes有一些特别的事情需要注意--但请注意,其中许多事情,你首先必须决定你想要做什么,然后才能测试你是否正在做你决定做的事情。
当然,
ValueError
。包括ISO日和月- bytes
.2018-03-06 12:13:14
是有效的2018-3-06
时间戳,但根据您的规则无效)。就这一点而言,20180306T12:13:14
和许多其他明显的过头值的variations.+
前缀的年份。ISO8601推荐像0030年这样的四位数年份,但也建议允许使用+
和-
前缀(这是处理公元前1年的唯一方法),并允许像10010这样的年份“通常由合作伙伴在信息秒内达成一致”。有人会向你传递2018-06-20T15:16:17.890
.2018-06-20T15:16:17Z
.2005-12-31T23:59:60
协调世界时或2006-01-01T08:59:60
本地时间。如果您正在处理本地时间,则由于当地时间转换而不存在的2018-03-11T02:30:00
在美国大部分地区不存在。由于日历转换而不存在的https://stackoverflow.com/questions/51792216
复制相似问题