Django 使用Fixtures

Django 使用Fixtures

在本教程中,我们将讨论Django中的Fixtures。如果你正在使用Django,pytest的fixtures可以帮助你编写易于维护的模型测试。编写准确的评估是成功应用的关键一步,而fixtures是使你能够高效强大地查看测试套件的关键部分。Fixture是用于测试的基础数据片段。随着测试场景的变化,添加、修改和维护fixtures可能会很麻烦。但是不用担心。本教程将展示如何使用pytest-Django插件轻松创建新的测试用例和fixtures。

在Django中创建应用程序或项目时,你应该测试应用程序的功能。使用对开发人员有意义的真实数据进行测试是最佳方法。这样,你可以更好地理解应用程序的工作原理。然而,从头开始构建应用程序可能会导致数据很快无法使用,并且数据库完全为空。即使你有一个旧的数据库,你可能需要将数据转移到新的数据库中。然后就是”fixtures”。Fixture是Django可以读取和加载到数据库中的数据集合。你还可以使用或创建fixtures来存储现有数据。Fixtures基本上是Django将数据导出和导入数据库的方式。有一个包可以帮助完成这个任务,即django-seed;我想手动完成以了解它的工作原理,并为我的项目使用更相关的数据。

在Django中如何创建Fixture

Fixtures可以放置在多个地方,但通常建议将它们放置在你的应用程序的fixtures/目录中。这样可以确保应用程序中的所有测试数据都完整并准备好在部署中运行。下面描述的loaddata命令指定了fixtures的位置以进行加载。在了解如何使用fixture之前,你需要知道如何创建fixture。Django的文档对此做出了优秀的解释。如果你的数据库中有一个应用程序的记录,你可以使用 ./manage.py dumpdata 命令从数据库中的当前数据创建fixtures。注意,你可以使用 --format 标记来指定输出格式,使用 --indent 命令来优化输出。首选的命令是:

./manage.py dumpdata APP --format=yaml --indent=6 >
 APP/fixtures/APP.yaml

这将创建一个非常可读的固定装置,稍后您将需要编辑它。在挑战目录上运行此命令,如有必要,请替换应用程序。如有必要,打开设备并查看内部。这应该是一个yaml序列化的、人类可读的数据库版本。

我们如何测试我们的fixtures

Django还提供了非常好用的工具来测试和更新fixtures。testserver命令可以让您在启动前运行改进的服务器并发送和加载fixtures。这样,任何fixture都可以在浏览器中运行代码库。听起来很不错,但这个命令最好的地方在于它允许您在关闭开发服务器后仍然保留数据库。这意味着您可以加载装备,在管理或前端进行编辑,然后关闭服务器。然后针对该数据库运行dumpdata以撤消更新的fixtures。非常简单。请注意,普通数据库名称前缀为test_,以防覆盖常规数据库。这就是我想从中获取数据的地方(您可能需要在settings.py文件中定义它以适用于dumpdata。这有点像黑客行为。可以做一些事情来使这个过程更容易)。

Django的测试用例(Testcase)是什么

正如预期的那样,单元测试fixture的故事要好得多。但在我解释如何在单元测试中使用fixtures之前,需要说一些事情。一个单元测试是一个可以像任何其他Python类一样被子类化的类。这意味着Django提供了他的Testcase类。您可以从这个类继承以获得Django的很酷的额外功能。官方文档对此进行了很好的记录。Django测试用例有配置Test Client和URLConf的部分。这些是用于测试视图的,所以您可以安全地跳过它们。现在相关的部分是Fixture Loading和Assertions。我们建议阅读整个测试文档。它简短且充满了有用的信息。然而,了解所有可用的断言会使测试变得更容易。

结论

因此,在本文中,我们讨论了Django中的Fixtures。您已经成功应用了一个fixture工厂,该工厂为Django版本实例提供了便利。我还维护并应用了fixture之间的依赖关系,从而使编写和维护评估变得更加容易。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程