Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Python对自己编写的API模块进行单元测试-在单独的项目中更好?

Python对自己编写的API模块进行单元测试-在单独的项目中更好?
EN

Stack Overflow用户
提问于 2018-08-19 07:52:35
回答 1查看 57关注 0票数 2

我有2个项目,使用相同的API模块,这是我自己写的。这些API模块封装了从pypi库中导入的现有函数。

如果我必须为我的API编写单元测试-单元测试模块是否应该出现在使用我的API的每个项目中,或者是否应该有一个单独的项目来进行API测试?

API是万能的,所以从逻辑上讲,我会为API测试打开一个单独的项目,但如果这些项目在不拥有API测试项目的人之间传递,该怎么办?然后,如果API中内部导入函数的实现发生变化,则需要进行单元测试。

我想这个问题涉及到任何语言的API,但我的项目都是用Python编写的。

EN

回答 1

Stack Overflow用户

发布于 2019-05-03 20:05:35

我建议将代码和它的单元测试视为属于同一组件。例如,它们应该驻留在您的版本控制系统的同一存储库中。例如,如果代码发生变化,单元测试很可能也需要相应地进行调整。因此,将它们视为不同的组件没有太大的价值。

以您的两个项目中的示例和它们都使用的API为例: API及其测试形成一个组件。因此,API在概念上是独立于项目开发的。例如,如果在项目API的工作期间,您在P1中检测到一个bug,那么您可以直接在其存储库中修复API组件(可能首先扩展API的单元测试套件以捕获该bug),创建一个新版本的API组件,然后在P1中使用该新版本,但可能还会更新P2以使用新版本。

但是,如果您愿意,可以考虑将API组件以包的形式提供给不包含单元测试的客户端(您的项目P1和P2)。在任何情况下,API的开发都不会从P1或P2内部进行,而是直接在API的存储库中进行。

总结:不要把代码和它的测试分开放在单独的模块中。取而代之的是,将代码及其测试放入一个存储库,但与客户端分开。

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

https://stackoverflow.com/questions/51915622

复制
相关文章
蓝牙BLE技术
蓝牙低功耗无线电的调制速率由规范规定为恒定的1Mbps(兆比特每秒)。当然,这是理论上的上限。在实践中,根据所使用设备的限制,您可以期望每秒5- 10kb。就距离而言,BLE专注于非常短的距离通信。可以创建和配置一个BLE设备,该设备可以可靠地传输30米或30米以上的视线范围内的数据,但典型的操作范围可能更接近2到5米。当然,续航里程越高,电池消耗就越多,所以在调整你的设备以适应更高的续航里程时要小心。 蓝牙BLE组成 BLE由三个主要构建模块组成:应用程序、主机和控制器。顾名思义,应用程序块是与蓝牙协议栈交互的用户应用程序。主机覆盖蓝牙协议栈的上层。控制器覆盖下层。主机可以通过添加一个我们称为HCI的东西与BLE模块通信——主机控制器接口。显然,HCI的目的是将控制器与主机接口,而这个接口使控制器与各种主机接口成为可能。在本例中,单片机运行应用程序,与连接设备进行通信,连接设备由主机和控制器组成。为此,我们使用SPI进行通信,但是也可以使用不同的接口。
心跳包
2020/08/31
2.4K0
通过异步方式发送和接收数据(tcp异步收发数据)
服务端 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.Threading;
liulun
2022/05/09
1.4K0
Android Ble蓝牙App(五)数据操作
  关于低功耗蓝牙的服务、特性、属性、描述符都已经讲清楚了,而下面就是使用这些知识进行数据的读取、写入、通知等操作。
晨曦_LLW
2023/08/15
1.4K2
Android Ble蓝牙App(五)数据操作
Android蓝牙开发—经典蓝牙和BLE(低功耗)蓝牙的区别
最近在做蓝牙开发,刚接触时傻傻的分不清经典蓝牙和低功耗蓝牙的区别,一直用开发低功耗蓝牙的方法去连接经典蓝牙设备,最后当然是一直连接不上了。在此记录下经典蓝牙和低功耗蓝牙的区别和联系。
全栈程序员站长
2022/07/05
4.9K0
Android蓝牙开发—经典蓝牙和BLE(低功耗)蓝牙的区别
Android Ble蓝牙App(三)特性和属性
  在上一篇中我们完成了连接和发现服务两个动作,那么再发现服务之后要做什么呢?发现服务只是让你知道设备有什么服务,可以做什么事情。
晨曦_LLW
2023/08/09
1.4K0
Android Ble蓝牙App(三)特性和属性
蓝牙---BLE GATT介绍
GATT(Generic Attribute Profile),描述了一种使用ATT的服务框架 该框架定义了服务(Server)和服务属性(characteristic)的过程(Procedure)及格式 Procedure定义了characteristic的发现、读、写、通知(Notifing)、指示(Indicating) 及配置characteristic的广播
心跳包
2020/08/31
3.6K0
蓝牙---BLE GATT介绍
BLE低功耗蓝牙与经典蓝牙(持续更新)
BLE设备分单模和双模两种,双模简称BR,商标为Bluetooth Smart Ready,单模简称BLE或者LE,商标为Bluetooth Smart。低功耗蓝牙是不能兼容经典蓝牙的,需要兼容,只能选择双模蓝牙。一个蓝牙主端设备,可同时与7个蓝牙从端设备进行通讯。
木溪bo
2020/03/20
8.8K1
BLE低功耗蓝牙与经典蓝牙(持续更新)
10分钟完成一个最最简单的BLE蓝牙接收数据的DEMO
这两天在研究蓝牙,网上有关蓝牙的内容非常有限,Github上的蓝牙框架也很少很复杂,为此我特地写了一个最最简单的DEMO,实现BLE蓝牙接收数据的问题,
用户3112896
2019/09/26
2.3K0
Android BLE 蓝牙开发,连接蓝牙设备进行通讯
讲解如何通过 UUID 连接蓝牙设备。如果你针对 GATT 服务不太了解。那么这篇应该能够稍微帮助到你。
zinyan.com
2023/07/14
5.6K0
Android BLE 蓝牙开发,连接蓝牙设备进行通讯
python 发送和接收ActiveMQ
ActiveMQ是java开发的消息中间件服务。可以支持多种协议(AMQP,MQTT,OpenWire,Stomp),默认的是OpenWire。而python与ActiveMQ的通信使用的是Stomp协议。而如果你的服务没有开启则需要配置开启。
py3study
2020/01/09
3.7K1
低功耗蓝牙(BLE)攻击分析
蓝牙是一种短距的无线通讯技术,可实现固定设备、移动设备之间的数据交换。可以说蓝牙是当今世界上,最受欢迎和使用最为广泛的无线技术之一。随着物联网的快速发展,蓝牙技术也加速了其发展步伐以适应不断增长的市场和用户需求。蓝牙特别兴趣小组(SIG)正不断努力提高蓝牙的传输速度,以让蓝牙技术更好的融合于各种物联网设备当中。
FB客服
2018/12/11
4.9K0
低功耗蓝牙(BLE)攻击分析
Android Ble蓝牙App(一)扫描
  关于低功耗的蓝牙介绍我已经做过很多了,只不过很多人不是奔着学习的目的去的,拿着源码就去运行,后面又发现连接设备后马上断开,然后不会自己看问题,这个现象就是快餐式的,你不了解里面的知识内容,自然就不知道是怎么回事,重复的问题我回答了好多次了。而我也是觉得写的有问题,本意上来说我是希望读者可以参考来写,能看一看文章内容,而结果绝大多数,看个标题看个运行效果,下载源码就运行,运行有问题就问你,没有什么思考。   针对这个情况,我决定做了系列性的Ble蓝牙App,尽可能的避免在你运行的时候出现bug,所以这是一个低功耗蓝牙工具App,可以让你了解到一些东西。注意是低功耗,不是经典蓝牙,如果你不知道两者之间的区别,建议你先了解一下。本文的效果:
晨曦_LLW
2023/08/02
1.2K0
Android Ble蓝牙App(一)扫描
关于串口数据的发送和接收(调试必备)
对于串口的数据发送和接收,大多是都是利用串口中断来进行的,但是这样对于编程方面有一定要求,并且程序也不太好写,比如说,如果让你随意接收一段数据,然后利用串口将它发送出来,第一个需要考虑的问题就是接收数据的长度,怎么才知道一段数据是否结束?或者说如果串口助手上面没有可以在数据末尾加上结束标志的时候,你如何知道数据的结束?,这必然牵涉到一定的编程技巧。但是,之前在接触C语言的时候,我们就利用过printf和Scanf,那么我们能否利用它们?如果能够利用的话,那么就很方便了。
全栈程序员站长
2022/09/14
5.2K0
关于串口数据的发送和接收(调试必备)
WIFI&蓝牙(ESP32)转CAN总线&串口TTL模块 - 接收和发送CAN数据并打印
杨奉武
2023/10/15
1K0
WIFI&蓝牙(ESP32)转CAN总线&串口TTL模块 - 接收和发送CAN数据并打印
Android Ble蓝牙App(四)UI优化和描述符
  上一篇中了解了特性和属性,同时显示设备蓝牙服务下的特性和属性,本文中就需要来使用这些特性和属性来完成一些功能。
晨曦_LLW
2023/08/15
3530
Android Ble蓝牙App(四)UI优化和描述符
Android低功耗蓝牙BLE开发小结
BLE是蓝牙4.0标准的一部分,旨在解决传统蓝牙连接慢、能耗大的问题,Google在Android 4.3(API 18)中引入了对BLE的支持。BLE连接使用GAP(Generic Access Profile)协议,通信使用GATT(Generic Attribute Profile)协议。GATT又以ATT为基础,所有的LE服务都以ATT作为应用层协议。以下深入地介绍这两个协议。
fdroid
2018/07/17
5.7K0
Android低功耗蓝牙BLE开发小结
Andorid 对接BLE蓝牙设备(连接篇)
笔者前段时间做了一个功能,需要对接一个蓝牙设备,该蓝牙设备使用的就是BLE蓝牙。这里给大家分享一下我的实现。这篇文章主要是实现程序与BLE蓝牙设备的连接,交互和设置、测试工具等请期待下一篇文章。
饮水思源为名
2019/10/16
1.6K0
PHP发送和接收JSON请求
现在微服务中,很多API由于需要传递的参数较多所以要求用包含所有参数的JSON数据作为POST请求的请求体来替代FormData传递参数的方式,在参数量较多时POST JSON要比POST FormData便于开发和测试,今天我们就来看一下在PHP中如何发送和接受JOSN POST,以及在Laravel框架中针对JSON Request提供的访问JSON请求数据的便捷方法。
KevinYan
2019/10/13
8.1K0
点击加载更多

相似问题

JMockit:重写@JMockit类

23

使用JMockit JMockit模拟工具包

10

处理Mockit,类似于来自JMockit的JMockit

13

JMockit中的静态模拟对象

10

JMockit javaagent没有初始化JMockit

25
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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