Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何进行数据库测试_Python_Unit Testing_Flask - Fatal编程技术网

Python 如何进行数据库测试

Python 如何进行数据库测试,python,unit-testing,flask,Python,Unit Testing,Flask,我目前正在使用Flask构建URL缩短器。我觉得为应用程序编写代码相当舒服,但是,我在理解如何编写测试时遇到了一些困难 应用程序的MVP具有两个功能: (1) 在帖子中给定一个长url,返回一个短url (2) 给定get中的短url,将重定向到目标 我的一般代码结构如下 url_shortener url_shortener controller.py setup.sh # sets up virtual env, installs requirements

我目前正在使用Flask构建URL缩短器。我觉得为应用程序编写代码相当舒服,但是,我在理解如何编写测试时遇到了一些困难

应用程序的MVP具有两个功能:

(1) 在帖子中给定一个长url,返回一个短url

(2) 给定get中的短url,将重定向到目标

我的一般代码结构如下

url_shortener
    url_shortener
       controller.py
       setup.sh # sets up virtual env, installs requirements, creates database if it doesn't exist, spins up application
       lib/ # contains functionality to shorten urls
       tests/ # Unit, integration, etc tests
从我所读到的内容来看,我相信我希望为每个单元测试设置一个新的数据库实例。例如,假设我想测试第一个长url->短url转换是否产生了。如果我使用应用程序的“真实”数据库(如果数据库中已经有任何内容),这将不起作用。从概念上讲,我理解我需要做什么,但是,我对如何将其转化为代码感到困惑

我试着四处寻找一些例子,但我很难找到那些没有很多新的和不熟悉的技术的例子(例如:-我没有使用过fab文件、alembic、nose for test(我使用py.test)等)或带有测试的例子(例如:)

  • 是否有人知道是否有现有的文档可以引导您以初学者的水平完成此操作?我对大多数非web应用程序Python非常熟悉,以前构建过1个flask端点,并且通常使用py.test
  • 如果没有,如果有人能帮助详细说明如何实现这一点,那就太好了
      查看URL缩写可能是错误的。相反,研究设置测试数据库和模拟数据库操作的一般技术。例如,和Python库。

      您应该查看内存中的数据库;它们通常用于测试,因为它们速度更快,并且很容易被拆卸和重新构建,而实际的持久性对于测试来说并不是什么大问题。