封装数据库增删改查之多参数测试

封装数据库增删改查之多参数测试

# coding:utf-8


import pytest
from db_package_test.db_package import DbUser

class TestMethod(object):

    @classmethod
    def setup_class(cls):
        """在类运行之前执行该函数   setup_class 固定的方法"""
        data = [
            {'name': 'zhangsan', 'age': 18, 'job': 'student'},
            {'name': 'lisi', 'age': 18, 'job': 'student'}
        ]
        cls.db = DbUser()        # 初始化数据库
        for i in data:
            cls.db.insert(i)        # 向数据库插入数据

    @pytest.mark.parametrize(
                        argnames="data",
                        argvalues=[
                            {'name': 'zhangsan', 'age': 18,'job': 'student'},
                            {'name': 'lisi', 'age': 18, 'job': 'student'}
                        ])
    def test_get_exist(self, data):
        """# 定义测试获取数据函数"""
        result = self.db.get(data['name'])
        assert result == data


    @pytest.mark.parametrize(argnames="data",
                             argvalues=[
                                {'name': 'wangwu', 'age': 18, 'job': 'student'}
                             ])
    def test_get_not_exist(self, data):  # 定义测试没有获取到属性值得函数
        result = self.db.get(data['name'])  # 获取字典传入的key='name'的值
        assert result == {}

    @pytest.mark.parametrize(argnames="name, data",
                             argvalues=[
                                ('zhangsan', {'age': 18, 'job': 'student'}),
                                ('lisi', {'age': 18})
                             ])
    def test_update_exist(self, name, data):  # 定义测试更新数据库数据函数
        self.db.update(name, data)
        result = self.db.get(name)
        for key, value in data.items():
            assert result[key] == value

    @pytest.mark.parametrize(argnames="name, data",
                             argvalues=[
                                 ('jom', {'age': 18, 'job': 'student'}),
                                 ('Anal', {'age': 18})
                             ])
    def test_update_not_exist(self, name, data):
        """定义测试更新数据库的数据不存在异常处理函数"""
        with pytest.raises(ValueError):
            self.db.update(name, data)

    @pytest.mark.parametrize(argnames="name", argvalues=['zhangsan', 'lisi'])
    def test_delete_exist(self, name):
        """定义测试删除数据函数"""
        self.db.delete(name)
        result1 = self.db.get(name)
        assert result1 == {}

    @pytest.mark.parametrize(argnames="name", argvalues=['TOM', 'BOB'])
    def test_delete_not_exist(self, name):
        """定义测试删除数据不存在函数"""
        with pytest.raises(ValueError):
            self.db.delete(name)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值