如何用Python编写RESTAPI的单元测试

在过去的几个月中,正在从事一个名为B的项目。它是带有简单Web UI的徽章生成器,用于添加数据并生成PDF可打印徽章。B后端现在已转移到REST-API并测试REST-API中使用的功能,我们需要一些测试技术来测试API中使用的每个功能。为了我们的目的,我们选择了流行的单元测试 Python测试套件。在此,将讨论如何编写单元测试来测试B REST-API。

如何用Python编写RESTAPI的单元测试_业界动态_数字化

首先,让我们了解什么是单元测试以及为什么选择它。然后,我们将继续为B编写API测试。这些测试具有通用的结构,因此我提到的代码可以在其他REST API测试方案中正常工作,而无需做任何改动。让我们开始并逐步了解API测试。

 什么是单元测试?

单元测试是一个Python单元测试框架,它支持测试自动化,共享测试的设置和关闭代码,将测试聚合到集合中以及使测试脱离报告框架。所述单元测试模块提供类,可以很容易地支持这些品质为一组测试。

 为什么要进行单元测试?

我们从单元测试中获得了两个主要好处,其中大部分价值都体现在第一个方面:

· 指导您的设计松耦合并充实。如果进行测试驱动的开发,它会将您编写的代码限制为仅需要的内容,并帮助您逐步开发该代码。

· 为重构和代码的少量更改提供快速的自动化回归。

· 单元测试还为您提供了有关系统的小部分工作原理的实时文档。

我们应该始终努力编写涵盖工作代码的全面测试。

现在,这是我如何在B的REST-API后端中编写用于测试代码的单元测试的一瞥。使用单元测试python包和请求模块,我们可以在测试自动化中测试REST API。

下面是我在其中一个pull请求中编写了单元测试的代码段。

def输出(response_type,消息,download_link):

如果download_link ==”:

response = [

{

'type':response_type,

'message':message

}

]

else:

response = [

{

'type':response_type,

'message':消息,

“ download_link”:download_link

}

]

返回jsonify({'response':response})

为了测试这个功能,我基本上创建了一个模拟对象,它可以模拟以可控的方式真实对象的行为,所以在这种情况下,模拟对象可以模拟输出功能和回报行为的东西像一个JSON响应没有击中真实REST API。现在,下一个挑战是解析JSON响应,并将响应JSON的特定值提供给Python自动化脚本。因此,Python将JSON作为字典对象读取,并且它确实简化了需要解析和使用JSON的方式。

#!/ usr / bin / env python3

“”“基本功能测试”””

import sys

import json

import unittest

来自app.main import的sys.path.append(“ ../ ..”)*

class TestFunctions(unittest.TestCase):

“”“客户端方法的测试用例。”””

def setup(self):

app.app.config ['TESTING'] = True

self.app = app.app.test_client()

#测试输出函数

def test_output(self):

使用app.test_request_context():

#模拟对象

out = output('错误','测试错误','本地主机')

#传递模拟对象

响应= [

{

'类型' :'error',

'message':'Test Error',

'download_link':'local_host'

}

]

数据= json.loads(out.get_data(as_text = True)

#声明响应

self.assertEqual(data ['response'],response)

如果__name__ =='__main__':

unittest.main()

最后,我们可以通过运行试行测试来验证一切正常 。

这就是在B项目中存储库中编写单元测试的方式。

上述就是关于如何用Python编写REST API的单元测试全部内容,想了解更多关于Python的信息,请继续关注。

56
91
0
0

相关资讯

  1. 1、旱的旱死,涝的涝死,刘德华新电影票房扑街,导演发声求排片3599
  2. 2、一张票看四部电影张家辉称《扫毒》要感动中国5016
  3. 3、张艺谋首部谍战片定档演员豪华阵容已公开都有哪些老戏骨?2169
  4. 4、都被周星驰骗了十二年!《长江七号》全是大美女,最惊艳的是暴龙3846
  5. 5、天王嫂朱丽倩年轻时撞脸关晓彤现在打扮似大妈还在拼二胎811
  6. 6、赵露思热度力压热巴!《长歌行》中人物更讨喜,将成下一个顶流869
  7. 7、《延禧攻略》昭华公主被袁春望伤害过,后来爱上了福康安194
  8. 8、《正阳门下小女人》:片儿爷重操旧业,徐慧真养了一群白眼狼1800
  9. 9、榜妹热线|朱一龙动态、黄景瑜新戏、胡一天热度、白鹿后续、任豪资源196
  10. 10、王源穿古装亮相《大主宰》媒体探班活动现场,皮肤白皙英俊帅气!2910
全部评论(0)
我也有话说
0
收藏
点赞
顶部