【问题标题】:can I run django test but with out model define?我可以运行 django 测试但没有模型定义吗?
【发布时间】:2014-04-19 13:13:10
【问题描述】:

我的问题是。这是一个我需要处理的旧 django 项目。

由于未知原因,该项目没有使用 django 模型。相反,它定义了一些类来通过纯 sql 对数据库进行 CRUD。而且该项目根本没有测试。

现在,我想为项目添加单元测试(视图/模型/等等)。但是我想知道这个测试是否可以在没有模型定义的情况下使用夹具?

我没有太多时间亲自测试这个。那么有人知道吗?

【问题讨论】:

  • 我们无法知道自定义类是否可以处理加载装置。您必须先为自定义 ORM 编写单元测试,然后再为应用编写它们
  • 根本没有自定义 ORM。只有一个 DBConnect 类,其方法类似于查询/执行(接受一个 sql,返回一个连接游标)。
  • 基本上就是自定义 ORM。如果他们不使用 django 模型(以及随后的 objects 模型管理器),那么他们必须有一些逻辑来将表单数据(或其他)转换为数据库记录。

标签: python django django-models django-fixtures


【解决方案1】:

您的首要问题的答案是肯定的,您应该能够使用不依赖模型的 Django 测试框架部分。

关于使用固定装置的内在问题(听起来可能是真正的问题)的答案是,而不是不编写一些额外的测试代码。 Django 使用固定装置来填充 Django 模型,而您没有任何 Django 模型。

所以,使用django.utils.unittest 编写测试并处理在那里加载的夹具。

【讨论】:

  • 所以我不能使用 django 夹具。相反,我需要自己在 TestCase 中加载数据。但我想知道的是 django 在测试运行时使用数据库代理,所以如果没有模型,它如何获取有关表的消息。
  • 好像没问题。即使我必须在测试用例中编写 data_load 方法。非常感谢大家。
猜你喜欢
  • 2013-12-09
  • 2018-07-23
  • 2016-12-21
  • 2013-07-19
  • 2015-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多