首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Python单元测试模拟导入-删除CI/CD的依赖项

Python单元测试模拟导入-删除CI/CD的依赖项
EN

Software Engineering用户
提问于 2021-09-24 04:46:04
回答 1查看 222关注 0票数 1

我有一个用python编写的项目,我想在这个项目上创建单元测试。

该项目依赖于数据库项目,而数据库项目是数据连接的抽象层。

这个db项目的问题是它是巨大的!因此,当我想要运行单元测试作为一个连续集成管道的一部分时,我必须每次下载它,并使用pip和所有需求等安装它。

忽略即将到来的项目重构,并知道主项目的单元测试只涉及其内部的功能,我将模拟任何数据库查询:

是否有一种方法可以有效地模拟导入(当然,我可以模拟数据库项目中的类),但是我仍然会在代码中使用导入db_project,所以我仍然必须将这个项目拉下来?

如果可能的话,我如何才能删除这些依赖项,因为我知道我无论如何都要模拟使用的任何方法。

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2021-09-24 04:58:18

  • 创建一个抽象层,包装您从数据库中需要的任何功能。
  • 创建一个简单的模拟实现,用于单元测试。创建一个几乎是微不足道的实现,它只将每个调用委托给真正的调用。
  • 在测试代码中,导入抽象层,而不是数据库模块。
  • 编排一些事情,以便在测试期间将第一个实现传递给您的类,在生产过程中传递第二个实现。

换句话说,您已经重新发现了依赖注入的需求。这是个好消息!DI是一个解决了的问题,实际上是一个最佳实践,并且通过您自己的经验了解了它为什么是一个好主意,您现在完全理解它是多么好。(就我个人而言,我发现这种学习事物的方式比在教科书中读一些贫血、不令人信服的例子要好得多。)

票数 4
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/432208

复制
相关文章
Python安装和使用
点击 Customize installation进入一步(方便我们自定义安装路径)
Python知识大全
2020/02/12
6120
Python无法安装PyAudio
直接使用pip install pyaudio无法安装,需要先下载PyAudio-0.2.11-cp38-cp38-win_amd64.whl(Python3.8)
Marigold
2022/06/17
2.3K0
python MySQLdb安装和使用
MySQLdb是Python连接MySQL的模块,下面介绍一下源码方式安装MySQLdb:
py3study
2020/01/14
2.5K0
Python Requests库安装和使用
Python 提供了多个用来编写爬虫程序的库,除了前面已经介绍的 urllib 库之外,还有一个很重的 Requests 库,这个库的宗旨是“让 HTTP 服务于人类”。
用户10002156
2023/08/07
1K0
Python Requests库安装和使用
pandas库如何安装_python无法安装库
如果你连续看了博主的各类Python的库引用,你会发现这都是套路!!! 先上正儿八经的流程,后面一句话总结一下这些库的安装套路。不知道安装库的你们用的什么操作? 请耐心看到最后哦!保证未来的安装一举成功!
全栈程序员站长
2022/11/10
2.1K0
pandas库如何安装_python无法安装库
CentOS使用minimal安装后,无法使用SCP
当使用minimal方式装完CentOS 6.3后,发现无法使用scp,默认情况下minimal很多软件都没有安装,导致使用的时候报错。错误如下:
EltonZheng
2021/01/26
1.1K0
使用Python和Chrome安装Selenium WebDriver
WebDriver是用于与实时Web浏览器进行交互的可编程界面。它使测试自动化能够打开浏览器,发送点击,键入键,刮擦文本并最终干净地退出浏览器。WebDriver界面是W3C建议书。WebDriver标准的最受欢迎的实现是Selenium WebDriver,它是免费和开放源代码。
用户7466307
2020/07/28
3.7K0
Python基础(三):PyCharm安装和使用
PyCharm是⼀种Python IDE(集成开发环境),带有⼀整套可以帮助⽤户在使⽤Python语⾔开发时提⾼其效率的⼯具,内部集成的功能如下:
Lansonli
2022/11/30
1.4K1
Python基础(三):PyCharm安装和使用
关于CentOS下python无法安装m
说明,我CentOS的python是2.7版本 easy_install MySQL-python 提示报错说少了mysql.c等相关文件。 处理方式很简单: yum install mysql-devel 然后重新 easy_install MySQL-python 成功了
py3study
2020/01/15
1.2K0
redis的安装和使用(python篇)
最近在项目中使用到了redis来存储数据,本文总结下redis的安装和python调用。
languageX
2021/09/01
2.2K0
Python lxml库的安装和使用
lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 Xpath 表达式提供了良好的支持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。
用户10002156
2023/08/11
5980
Python lxml库的安装和使用
python3安装和使用virtuale
本文介绍了virtualenv的安装,以及使用virtualenvwrapper提高效率。本文的操作示例是在linux下完成。 一. 安装 前提: python3和pip3都已经安装。 [root@localhost]# pip3 install virtualenv virtualenvwrapper 查看virtualenvwrapper.sh的位置 [root@localhost]# which virtualenvwrapper.sh 假设输出是/usr/local/bin/virtua
py3study
2020/01/03
4150
python3 安装MySQLdb及无法
用pip安装MySQLdb 中遇到如下问题,折腾半天之久,多方尝试,终搞定,遂做此记录,以便后来者少走弯路:
py3study
2020/01/19
1.5K0
Python3 turtle安装和使用教
Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。
py3study
2020/01/03
6K0
Python:Scrapy框架的安装和基本使用
本篇文章我们来看一下强大的Python爬虫框架Scrapy。Scrapy是一个使用简单,功能强大的异步爬虫框架,我们先来看看他的安装。
一墨编程学习
2018/11/26
1.2K0
python安装依赖包经常出错怎么办_python不兼容无法安装
原来编码是None,程序肯定是采用默认的GBK,所以这里我改一下他的默认编码为:UTF-8
全栈程序员站长
2022/11/11
1.5K0
python安装依赖包经常出错怎么办_python不兼容无法安装
python 升级导致yum无法正常使用
    昨天安装django的时候有些命令用不了,一查应该是python版本过低,目前版本2.6.6,于是编译安装了2.7.2版本,编译完成后做了个软连接加到path路径里面,使python调用的2.7版本。但是问题来了,当使用yum的时候报错使用不了,找不到模块。
py3study
2020/01/15
4.1K1
Python数据分析之anaconda安装和使用
今天开始学习Python数据分析了,说到Python数据分析,大家都会推荐使用anaconda,但作为一个初学者,总是很多疑虑,但在实践中解决了一部分,先和大家分享分享。
罗罗攀
2019/02/22
1K0
Python数据分析之anaconda安装和使用
python中RabbitMQ的使用(安装和简单教程)
RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现的产品,RabbitMQ是一个消息代理,从“生产者”接收消息并传递消息至“消费者”,期间可根据规则路由、缓存、持久化消息。“生产者”也即message发送者以下简称P,相对应的“消费者”乃message接收者以下简称C,message通过queue由P到C,queue存在于RabbitMQ,可存储尽可能多的message,多个P可向同一queue发送message,多个C可从同一个queue接收message
周小董
2019/03/25
3.8K0
python中RabbitMQ的使用(安装和简单教程)
Python爬虫:Scrapy框架的安装和基本使用
大家好,本篇文章我们来看一下强大的Python爬虫框架Scrapy。Scrapy是一个使用简单,功能强大的异步爬虫框架,我们先来看看他的安装。
QQ1622479435
2018/10/19
6540

相似问题

无法使用conda和python 3.8安装tensorflow

1218

无法使用pipenv和Python 3.8安装opencv-python

188

无法使用Python安装DuckDB

244

无法使用pip安装python

253

无法使用brew安装python

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文