【问题标题】:Flushing python GAE datastore when unit testing单元测试时刷新python GAE数据存储
【发布时间】:2011-09-26 20:03:24
【问题描述】:

我关注the recommendations on the app engine site for unit testing coding with GAE。我已将 PseudoRandomHRConsistencyPolicy 概率设置为 0%,以强制代码考虑数据尚未一致的情况。问题是,在我的测试套件中,我想做一些数据设置(创建数据并将数据添加到数据存储区),并且需要一种方法来强制数据存储区在我运行被测代码之前将所有数据刷新到一致状态。 (即确保数据存储区将在我下次执行查询时返回我编写的所有全局实体)。

有没有办法做到这一点,如果没有,其他人在使用一致性模型时如何在他们的测试套件中设置数据?

【问题讨论】:

  • 只需将概率设为 1 即可测试任何写入操作是否足够好。

标签: python unit-testing google-app-engine google-cloud-datastore


【解决方案1】:

这样做的关键在 HRD 测试部分的末尾附近注明:

在本地环境中,执行一个实体的 get() 属于具有未应用写入的实体组将始终使 未应用写入的结果对后续全局可见 查询。在生产中并非如此。

只需在您的测试中添加一些 get 操作即可获取适当的记录,它们会在以后的查询中显示。

【讨论】:

  • 您能否更具体地说明执行此操作的最佳实践?我是 HRD 的新手,所以虽然我想我明白你在说什么,但我想确保我理解的内容正确且完全有效。
  • @Allen 在正确运行测试之前,只需对存储在设置例程中的每个实体执行db.get(a_key)
  • 效果很好。我希望有一种方法可以告诉它只是刷新它所知道的所有内容。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2013-04-07
  • 2012-04-21
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-06
相关资源
最近更新 更多