一次调用夹具,并在测试用例之前传递不同的参数

时间:2018-07-03 20:39:49

标签: python pytest

我想测试一些数据库编写功能。我的测试用例场景是将几个数据创建到数据库中,然后使用输入来验证数据库中的每个数据。我试图使用夹具通过一个调用将多个数据创建到数据库中。对我来说最好的方法是什么?我在想 使用pytest.mark.parametrize和间接参数化到Fixture中,然后一一创建消息。在测试用例内部,然后验证返回值。这是正确的方法吗?

@pytest.fixture(scope='function')
def testcase_fix(self, request):
    """
    create data into database based on request
    :return json format for all create data
    """
    # for i in request.param:
    #     database_write(dict(name=i['name'], address=i['address']))
    # return database_get_data()

@pytest.mark.parametrize('testcase_fix', [[dict(name='1', address='1_address'), dict(name='2', address='2_address'),dict(name='3', address='3_address')]], indirect=['testcase_fix'])
def test_fixture(self, testcase_fix):
    for index, value in enumerate(testcase_fix):
        assert index + 1 == testcase_fix['id']
        assert f'{index+1}' == testcase_fix['name']
        assert f'{index+1}_address' == testcase_fix['address']

0 个答案:

没有答案