Discuss / Python / 撰写测试用例方法改进

撰写测试用例方法改进

Topic source

为了方便测试多个接口,撰写测试用例,不用重复写创建连接池的方法,我用装饰器对创建连接池的方法进行了封装,使用时只需要在方法中创建Model对象,调用insert、update、select和delete方法即可。测试方法中更注重于业务功能,代码更精炼。

import orm
import asyncio
from models import User, Blog, Comment
import functools


def test(func):  # 定义装饰器
    @functools.wraps(func)
    async def wrapper(*args, **kwargs):
        # 将创建连接池的方法放在func前面执行
        await orm.create_pool(loop=loop, user='www-data', password='www-data', db='awesome')
        return await func(*args, **kwargs)
    return wrapper


@test  # 将orm.create_pool方法抽取出来,通过装饰器的形式调用
async def testUserSave(loop):
    u = User(name='Test', email='test@example.com', passwd=1234567890, image='about:blank')
    await u.save()

@test
async def testUserUpdate(loop):
    pass

@test
async def testUserSelect(loop):
    pass

@test
async def testUserdelete(loop):
    pass


if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    tasks = [testUserSave(loop), testUserUpdate(loop),testUserSelect(loop),testUserdelete(loop)]
    loop.run_until_complete(asyncio.wait(tasks))
    loop.run_forever()

  • 1

Reply