使用Django nose测试查询

时间:2014-01-02 09:29:47

标签: django django-nose

我是django测试的新手。我使用 django nose 用于 TDD 。我在我的虚拟环境中使用django nose 1.2版。我参考了下面的链接来创建我的测试。

http://kokoko.fluxionary.net/testing-django-part-1-nose

目前我需要测试我要在我的视图中编写的查询,即来检查查询输出是否正确。我使用下面的代码,但测试失败了:

import nose.tools as nt

nt.assert_true('obj_list' in resp.context)
nt.assert_equal([obj.pk for obj in resp.context['obj_list']], [1])

任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

看起来您的数据库中没有任何对象,因此测试失败 - 当您运行测试时,会创建一个新数据库,因此来自开发数据库的数据不会被转移到您的隔离测试环境中。

选择一种可用的解决方案:

  1. 创建一个fixture文件,因此它将保存所有测试的数据: https://docs.djangoproject.com/en/dev/howto/initial-data/

  2. 在setUp方法或测试方法中创建对象,然后尝试执行一些断言。

  3. 首先阅读本文,如果没有Django测试经验: https://docs.djangoproject.com/en/1.6/topics/testing/overview/