📖Use TestCase auto generate API document.
Project description
Rimuru
📖用单元测试自动生成接口文档
已适配的客户端
- requests
- django.test.client
- flask.testing.FlaskClient
使用方法
用requests模块进行测试
import unittest
import requests as requests_module
from rimuru.core import doc_client, APIDocument
class APITestCase(unittest.TestCase):
def setUp(self):
self.api_document = APIDocument()
self.client = doc_client(self.api_document, requests_module)
def test_api(self):
url = 'http://127.0.0.1:5000/api/books'
method = 'GET'
name = '书列表接口'
self.api_document.set_api_name(method=method, url=url, name=name)
response = self.client.get(url)
"""
你的测试逻辑
self.assertEqual(response.status_code, 200)
...
"""
self.client.get(
url, params={'name': 'A'},
headers={'TEST_HEADER': 'test'},
requires={'name': False},
add_response=False
)
url = 'http://127.0.0.1:5000/api/books/<int:id>'
method = 'GET'
name = '书详情接口'
self.api_document.set_api_name(method=method, url=url, name=name)
self.client.get('http://127.0.0.1:5000/api/books/2')
response = self.client.get('http://127.0.0.1:5000/api/books/4')
self.assertEqual(response.status_code, 404)
self.api_document.save(file_path='tests/')
用django.test.client模块进行测试
import django.test import TestCase
class APITestCase(unittest.TestCase):
def setUp(self):
self.api_document = APIDocument()
self.client = doc_client(self.api_document, self.client)
def test_api(self):
url = 'http://127.0.0.1:5000/api/books'
method = 'GET'
name = '书列表接口'
self.api_document.set_api_name(method=method, url=url, name=name)
response = self.client.get(url)
"""
你的测试逻辑
self.assertEqual(response.status_code, 200)
...
"""
self.client.get(
url, data={'name': 'A'},
requires={'name': False},
add_response=False,
**{'HTTP_TEST_HEADER': 'test'}
)
url = 'http://127.0.0.1:5000/api/books/<int:id>'
method = 'GET'
name = '书详情接口'
self.api_document.set_api_name(method=method, url=url, name=name)
self.client.get('http://127.0.0.1:5000/api/books/2')
response = self.client.get('http://127.0.0.1:5000/api/books/4')
self.assertEqual(response.status_code, 404)
self.api_document.save(file_path='tests/')
生成文档
书籍列表接口.md
## 书列表接口
### 请求地址
`GET` `http://127.0.0.1:5000/api/books`
### 请求头
| 参数名 | 必填 | 参考值 |
| ------- | ---- | -------------------------------- |
|TEST_HEADER|True|test|
### 请求参数
| 参数名 | 类型 | 必填 | 描述 | 默认值 | 参考值 |
| -------- | ------ | ---- | ---- | ------ | ------ |
|name|String|False|||A|
### 返回正确
状态码 `200`
```json
[
{
"id": 1,
"name": "A"
},
{
"id": 2,
"name": "B"
},
{
"id": 3,
"name": "C"
}
]
```
书详情接口.md
## 书详情接口
### 请求地址
`GET` `http://127.0.0.1:5000/api/books/<int:id>`
### 返回正确
状态码 `200`
```json
{
"id": 2,
"name": "B"
}
```
### 返回错误
状态码 `404`
```json
{
"msg": "Not Found"
}
```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
rimuru-0.0.12.tar.gz
(7.7 kB
view details)
Built Distribution
rimuru-0.0.12-py3-none-any.whl
(13.5 kB
view details)
File details
Details for the file rimuru-0.0.12.tar.gz
.
File metadata
- Download URL: rimuru-0.0.12.tar.gz
- Upload date:
- Size: 7.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.11.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 664a2c6dc61544aa67949892a551ef07d3578348c75292a3b22cfdea74c2601e |
|
MD5 | afe3c36c5c27c47a260cdcdf83c7cb5f |
|
BLAKE2b-256 | b55120548f01f1bab2413979d81693408b850c73345c0e973a381eb878ac1293 |
File details
Details for the file rimuru-0.0.12-py3-none-any.whl
.
File metadata
- Download URL: rimuru-0.0.12-py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.11.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28338c1c2fecf494ba960c6dce2f3488cb3f31b203b63635f56280988ecffd63 |
|
MD5 | b5905544874e996c084f1018f1c7bed7 |
|
BLAKE2b-256 | 899fbc39968268074d33ddd9383b2dff5860f88d794e2f6a24e781fcf054063a |