python - Python assertEqal 字符串 - 忽略它的一部分
问题描述
我正在使用 python 3.6.7
在测试中,我使用 assertEqual 来比较字符串对象。这些字符串包含一些时间数据。由于此数据因测试而异,因此我想忽略此数据。可行吗?
例如,这是可比较的对象:
obj1 = '{"field1": "field1", "field2": "field2", "created_at": "2019-06-16T07:12:46.429536Z", "field2": "field3"}'
我想做类似的事情:
obj1 = '{"field1": "field1", "field2": "field2", "created_at": ANY, "field2": "field3"}'
obj2 = '{"field1": "field1", "field2": "field2", "created_at": "2019-06-16T07:12:46.429536Z", "field2": "field3"}'
assertEqual(obj1, obj2)
解决方案
由于字符串是序列化的 json 对象,因此我宁愿比较数据,也不愿比较可能会随机变化和破坏测试的表示。例如:
import json
v1 = json.loads(obj1)
v2 = json.loads(obj2)
del v1['created_at']
del v2['created_at']
assertEqual(v1, v2)
推荐阅读
- express - 在 Sapper 路由或 sapper 中间件中使用 passportjs passport.authenticate()
- compilation - 使用 JIT 编译设计虚拟机
- c# - 控制台应用程序无法加载 Program.cs 或
.csproj - google-apps-script - 扩展 Vlookup 的功能?
- java - Java 内部类和静态嵌套类 - 二进制差异
- docker - 从 docker 容器内打开 X-window
- php - 在以后的选择中使用以前的 sql 选择的一部分
- python - 获取for循环中的项目总数
- sql-server - 具有两个数组的对象上的 OPENJSON
- recursion - “(错误)尝试写入无效的内存地址”尝试存储堆栈指针时