我正在尝试编写一个测试,以确保一个实体不能根据一些验证(或由多个字段组成的唯一键)两次添加到google云数据存储中。你知道吗
举个例子,假设我想保存一个简单的image_url
和一个type
。现在只能有一个具有特定URL和特定类型的图像。你知道吗
这很容易检查(至少目前我验证了我的数据存储没有找到具有此类值的实体)。你知道吗
但在编写测试时,我认为由于延迟,结果不一致。比如:
def test_foo_bar(self):
self.datastore.save_image(self.image_metadata)
with self.assertRaises(ValueError):
self.datastore.save_image(self.image_metadata)
现在的问题似乎是,当我检查实体是否已经存在时,刚刚创建的实体还不存在(?)。所以它不会抛出错误,创建一个副本,测试失败。到目前为止,获得一致性的唯一方法是添加一个time.sleep(1)
来给它更多的时间,但有时测试仍然没有通过(尽管大部分时间都是这样)。我个人不喜欢这种矛盾。你知道吗
避免这种行为的好方法是什么?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐