对 Python 不是很熟悉,碰到这种情况,比如:
函数 func1 有文件路径的入参,func1 是写入内容到该文件。
我想写一个单元测试,只想获取入参或者返回值,做后续断言用,但是不覆盖 func1 的功能。
我看了一下 Mock side_effect 之类的属性,是把函数功能覆盖掉了,有没有更好的方法?
1
lanyi96 2022-02-12 21:17:54 +08:00
装饰器?
|
3
imn1 2022-02-12 21:33:07 +08:00
装饰器可以获取并继续跑原函数,在装饰器内输出到其他地方(全局变量或外存储)就行了
如果可以修改原来代码,加个装饰器就可以了 不能的话就继承过来再加 可以看看 contextlib 和 inspect ,或许有用 |
4
saber000 2022-02-12 21:57:15 +08:00 1
side_effect 可以再指向原函数呀
|
5
Trim21 2022-02-12 22:05:12 +08:00 1
mock.Mock(wraps=original_object)
|