博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pytest的参数化测试
阅读量:5244 次
发布时间:2019-06-14

本文共 2718 字,大约阅读时间需要 9 分钟。

感觉在单元测试当中可能有用,

但在django这种框架中,用途另一说。

 

import pytestimport tasksfrom tasks import Taskdef test_add_1():    task = Task('breathe', 'Brian', True)    task_id = tasks.add(task)    t_from_db = tasks.get(task_id)    assert equivalent(t_from_db, task)@pytest.mark.parametrize('task',                         [Task('sleep', done=True),                          Task('wake', 'brian'),                          Task('breath', 'BRIAN', True),                          Task('exercise', 'BrIaN', False)])def test_add_2(task):    task_id = tasks.add(task)    t_from_db = tasks.get(task_id)    assert equivalent(t_from_db, task)@pytest.mark.parametrize('summary, owner, done',                         [('sleep', None, False),                          ('wake', 'brian', False),                          ('breath', 'BRIAN', True),                          ('eat eggs', 'BrIaN', False),                          ])def test_add_3(summary, owner, done):    task = Task(summary, owner, done)    task_id = tasks.add(task)    t_from_db = tasks.get(task_id)    assert equivalent(t_from_db, task)tasks_to_try = (Task('sleep', done=True),                Task('wake', 'brian'),                Task('breath', 'BRIAN', True),                Task('exercise', 'BrIaN', False))@pytest.mark.parametrize('task', tasks_to_try)def test_add_4(task):    task_id = tasks.add(task)    t_from_db = tasks.get(task_id)    assert equivalent(t_from_db, task)task_ids = ['Task({},{},{})'.format(t.summary, t.owner, t.done)            for t in tasks_to_try]@pytest.mark.parametrize('task', tasks_to_try, ids=task_ids)def test_add_5(task):    task_id = tasks.add(task)    t_from_db = tasks.get(task_id)    assert equivalent(t_from_db, task)    @pytest.mark.parametrize('task', [    pytest.param(Task('create'), id='just summary'),    pytest.param(Task('inspire', 'Michelle'), id='summary/owner'),    pytest.param(Task('encourage', 'Michelle', True), id='summary/owner/done'),])def test_add_6(task):    task_id = tasks.add(task)    t_from_db = tasks.get(task_id)    assert equivalent(t_from_db, task)@pytest.mark.parametrize('task', tasks_to_try, ids=task_ids)class TestAdd:    def test_equivalent(self, task):        task_id = tasks.add(task)        t_from_db = tasks.get(task_id)        assert equivalent(t_from_db, task)    def test_valid_id(self, task):        task_id = tasks.add(task)        t_from_db = tasks.get(task_id)        assert t_from_db.id == task_iddef equivalent(t1, t2):    return (t1.summary == t2.summary) and (t1.owner == t2.owner) and (t1.done == t2.done)@pytest.fixture(autouse=True)def initialized_tasks_db(tmpdir):    tasks.start_tasks_db(str(tmpdir), 'tiny')    yield    tasks.stop_tasks_db()

转载于:https://www.cnblogs.com/aguncn/p/9373009.html

你可能感兴趣的文章
Js时间处理
查看>>
Java项目xml相关配置
查看>>
三维变换概述
查看>>
第三次作业
查看>>
vue route 跳转
查看>>
【雷电】源代码分析(二)-- 进入游戏攻击
查看>>
Entityframework:“System.Data.Entity.Internal.AppConfig”的类型初始值设定项引发异常。...
查看>>
Ubuntu 安装之python开发
查看>>
恶心的struts标签,等我毕业设计弄完了,瞧我怎么收拾你。
查看>>
Linux中防火墙centos
查看>>
hudson+apachecontinuum+ant
查看>>
mysql新建用户,用户授权,删除用户,修改密码
查看>>
实验五 TCP传输及加密
查看>>
【iOS】build diff: /../Podfile.lock: No such file or directory
查看>>
【Android Studio】使用 Genymotion 调试出现错误 INSTALL_FAILED_CPU_ABI_INCOMPATI
查看>>
FancyCoverFlow
查看>>
教你一分钟实现动态模糊效果
查看>>
C++中explicit的用法
查看>>
java 企业站源码 兼容手机平板PC 响应式 主流SSM框架 freemaker 静态引擎
查看>>
JS博客
查看>>