【发布时间】:2022-02-01 21:26:54
【问题描述】:
我的生产代码采用pathlib.Path 实例并创建第二个带有修改后缀的实例,如果存在则删除第二个文件。
def productive_code(fp):
# "foo" + ".wrong" + ".csv" = "foo.wrong.csv"
fp.with_suffix('.wrong{}'.format(fp.suffix))
fp_wrong.unlink(missing_ok=True) # >= Python3.8
在单元测试中,我修补了pathlib.Path.unlink(),我可以检查它是否被调用以及使用了哪些参数。
但是如何检查路径对象本身的“值”呢?我想测试“第二个”文件名是否正确创建。
import unittest
from unittest import mock
import pathlib
class TestMy(unittest.TestCase):
@mock.patch('pathlib.Path.unlink')
def test_unlink(self, mock_unlink):
productive_code(pathlib.Path('foo.csv'))
mock_unlink.assert_called_once_with(missing_ok=True)
# test "foo.wrong.csv" !!!
【问题讨论】:
标签: python unit-testing mocking python-3.8