13
如何在Django中使用不同的设置进行单元测试?
是否有任何简单的机制可以覆盖Django单元测试的设置?我在一个模型上有一个经理,该经理返回特定数量的最新对象。它返回的对象数由NUM_LATEST设置定义。 如果有人更改设置,这可能会使我的测试失败。如何覆盖设置setUp()并随后恢复设置tearDown()?如果不可能,是否可以通过某种方式猴子修补方法或模拟设置? 编辑:这是我的经理代码: class LatestManager(models.Manager): """ Returns a specific number of the most recent public Articles as defined by the NEWS_LATEST_MAX setting. """ def get_query_set(self): num_latest = getattr(settings, 'NEWS_NUM_LATEST', 10) return super(LatestManager, self).get_query_set().filter(is_public=True)[:num_latest] 管理器用于settings.NEWS_LATEST_MAX切片查询集。该getattr()只是用来提供一个默认的应该设置不存在。