我想使用unittest编写一个单元测试用例,其中我的输入是图像集,输出是图像中带有边界框的图像集,它还会生成边界框的坐标。如何使用unittest pyunit框架为此编写测试脚本。
所以我写了unittest脚本来测试api是否正常工作,响应应该是json /,列表格式和图像文件格式的响应应该是png,jpg格式,现在可以使用了。我有下面的测试用例场景需要测试,但是我将如何检查?我不知道。
如果可选键未传递到API,则不应引发错误。 (与强制性相反)8)如果传递了GET请求而不是POST,则实现的路由应引发/返回错误。 9)如果提供了有效路径但文件名无效,则应看到相应的错误。 10)如果路径无效,则应看到相应的错误消息。 11)指定了一组强制传递给API的密钥,如果没有,则返回错误12)验证会话超时。
这是我的代码:
import requests
import json
import sshtunnel
import unittest
class TestSequentialExecutions(unittest.TestCase):
def setUp(self) -> None:
a=10
def test_API(self):
self.resp_list = []
# API url
url = ['dummy url','dummyurl']
# Additional headers.
headers = {'Content-Type': 'application/json'}
# Body
payload = [{'input': 'dummy path'},
{"path": "dummy"}]
# Test case-1 checking valid API is routed or not
# convert dict to json by json.dumps() for body data.
for i in range(len(url)):
resp = requests.post(url[i], headers=headers, data=json.dumps(payload[i], indent=4))
self.assertEqual(resp.status_code, 200)
self.resp_list.append(resp.json())
#Test case-2 to check input file is in JPG ,PNG format or not
def test_fileformat(self):
n = len(self.resp_list[1])
my_list = [1]*n
empty_list=[]
extensions = ['png','v']
for filename in self.resp_list[0]:
if filename.lower().endswith(('.png', '.jpg')):
empty_list.append(1)
else:
empty_list.append(0)
self.assertEqual(my,empy_list)
if __name__ == '__main__':
unittest.main()
实际上,我正在尝试为以下github代码编写测试脚本:https://github.com/eragonruan/text-detection-ctpn