首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对许多函数重复相同的测试

对许多函数重复相同的测试
EN

Stack Overflow用户
提问于 2019-10-18 13:43:13
回答 1查看 48关注 0票数 1

我正在编写一个数据库客户端,并希望确保日志记录和重试机制对我的所有CRUD方法都有效。

有没有办法对列表中的所有方法一遍又一遍地重复相同的测试?

或者,这里的最佳实践是什么?

代码语言:javascript
复制
    @patch_whatever
    def test_all(self,log_mock,execute_mock):
        db = DBClient()
        l = [db.get1,db.get2]
        for function in l:
            function()
            self.assertEqual(3, log_mock.call_count)
            self.assertEqual(3, execute_moock.call_count)

在这种情况下,断言不会被重置。我该怎么做呢?我应该尝试一些参数化的测试吗?

EN

Stack Overflow用户

发布于 2019-10-18 14:54:30

您可以使用fixture来实现这一点。

代码语言:javascript
复制
import pytest


@pytest.fixture(scope="module")
def db_client():
    return DBClient()


@pytest.fixture(scope="module")
def db_function(request, db_client):
    for func in [db_client.get1, db_client.get2]:
       yield func


@patch_whatever
def test_all(self, log_mock, execute_mock, db_function):
    db_function()
    self.assertEqual(3, log_mock.call_count)
    self.assertEqual(3, execute_mock.call_count)
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58444598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档