【发布时间】:2022-11-17 19:36:39
【问题描述】:
检查是否有 assertEqual 一个对象,其中一些键/值被通配符。
我有一个函数,它返回一个对象,其中一个键是以纳秒为单位的当前时间戳。因为每次我运行测试时这个纳秒都会改变,所以我不能期望基于任何输入。我想要做的是能够调用类似下面的内容
self.assertEqual(returnedObject, {'key1' : 'val1', 'timestampkey' : '*'} #where * being the value is wildcarded, hence dont care what is.
单元测试中有这样的规定吗?
断言这样的事情的替代方法是什么。
我也许可以 assertEqual 单独的键/值,但想避免额外的工作。
【问题讨论】:
-
self.assertIsNotNone(returnedObject.timestampkey) -
感谢您的回复。我希望能够断言除时间戳键之外的所有其他键,即我不关心时间戳键有什么值,但我想断言对象的其余部分。
-
我没有太多使用测试框架,所以我不知道是否像您要求的那样支持通配符值。我能想到的最接近的事情是像我上面评论的那样做
assertIsNotNone,然后完全删除timestampkey属性,然后继续进行完全相等比较。 -
好的,所以你是说我首先检查密钥是否存在(使用 notnone),然后从返回的对象中删除它并为对象的其余部分断言。那讲得通。谢谢。
标签: python wildcard python-unittest