【发布时间】:2012-03-17 09:26:21
【问题描述】:
我正在考虑创建一些subclassed Django model fields 并将它们作为一个包分发到PyPI。我喜欢为我的代码编写单元测试(à la TDD),但我对如何为这个特定的库编写测试感到有些困惑。
我想到的第一个想法是创建一个使用我的子类并只使用Django test tools 的 Django 项目,但这似乎一点也不优雅。一定有更好的方法!
有没有一种方法可以为这种类型的事情引导 Django?我很感激有人指出我正确的方向。谢谢!
【问题讨论】:
-
为什么一定要有“更好的方法”?在我看来,如果您正在为 Django 编写库,那么使用 Django 的测试接口非常有意义。
-
@ChrisPratt 它涉及编写很多 代码,这些代码与测试库 无关。 Django 项目本身通常需要单元测试,所以如果我采用这种方法,我可能最终会在本质上为我的单元测试编写单元测试。不理想!
-
不,你不会。您不必测试任何不在您的应用程序中的内容。 Django 对它的所有东西都有自己的测试。只需测试您的应用程序的独特之处,并依靠 Django 的东西来“正常工作”。确保这一点不是您的责任。
-
您将在 Django 应用程序中创建它... 天哪,这一切都是语义,但 Django 的测试基础设施并没有什么特别之处。它只是 unittest2 和一些插件,使测试 Django 的东西更容易。如果您正在为为 Django 编写一些东西,您可以假设 Django 是可用的,因此使用添加的内容。当然,您总是可以直接导入 unittest2,但测试的工作方式都一样。
-
@ChrisPratt 也许我们正在争论语义,但你不能假设我对 Django 的内部了解得足够多(我不知道!)。基本上我不想仅仅为了一个测试套件而包含一个manage.py、urls.py、settings.py。只是似乎没有必要。我的问题是这是否可能。我不在乎你是否称它为 Django 应用程序。我也不知道你为什么要让我这么难,而 3 小时前 lazerscience 已经给了我一个更有帮助的答案。
标签: django unit-testing django-models subclass