首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中同时调用两个函数调用?

如何在python中同时调用两个函数调用?
EN

Stack Overflow用户
提问于 2020-11-13 09:21:27
回答 1查看 487关注 0票数 1

我有一个使用下面代码的函数。

代码语言:javascript
复制
def get_doc_hash(doc):
       return hashlib.md5(doc.encode(‘utf-8’)).hexdigest()

如何模拟md5()和十六进制()的调用来为该函数编写测试用例?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-13 11:10:07

正如评论中所指出的,最好是测试预期的行为,但纯粹是为了展示如何连锁模仿,以下是如何做到的:

代码语言:javascript
复制
import hashlib
import unittest
from unittest.mock import patch


def get_doc_hash(doc):
    return hashlib.md5(doc.encode("utf-8")).hexdigest()


class TestHash(unittest.TestCase):
    @patch('hashlib.md5')
    def test_get_doc_hash_to_demonstrate_mock_chaining(self, mock_hashlib):
        mock_hashlib.return_value.hexdigest.return_value = "digested"
        hash_out = get_doc_hash("test doc")
        mock_hashlib.assert_called_once_with("test doc".encode("utf-8"))
        mock_hashlib.return_value.hexdigest.assert_called_once()
        self.assertEqual(hash_out, "digested")
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64818340

复制
相关文章

相似问题

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