1 python datetime unit-testing
我是单元测试的新手,我想就这个主题提供一些指导.该函数验证日期时间是否为首先是字符串,如果是,则验证它是否是正确的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
Run Code Online (Sandbox Code Playgroud)
如何确定单元测试中包含哪些内容以及我应该注意什么?
关键是提出边缘情况.这在很大程度上依赖于问题领域的经验 - 你在过去的日期中看到了什么错误.但幸运的是,您可以随时添加更多单元测试,以便在等待Lyft或其他任何内容时找到并修复错误或想到奇怪的情况.
有一些特别的事情需要注意日期时间 - 但请注意,其中许多,你首先必须决定你想做什么,然后才能测试你是否正在做你决定做的事情.
ValueError.包括bytes.2018-3-06有效日期吗?2018-03-06 12:13:14是有效的ISO时间戳,但不适用于您的规则.与此相关20180306T12:13:14,以及许多其他变体.+前缀的年份.ISO 8601推荐像0030这样的四位数年份,但也建议允许+和-前缀(这是处理公元前1年之前的唯一方法),并且通过信息交换中合作伙伴的协议,允许像10010这样的年份.2018-06-20T15:16:17.890.2018-06-20T15:16:17Z.2005-12-31T23:59:60UTC或2006-01-01T08:59:60日本本地.2018-03-11T02:30:00在美国大部分地区都不存在.