我有一个类型为pathlib.Path
的类变量.
from pathlib import Path
class MyClass:
FILE_PATH = Path('/etc/ids.json')
我知道pyfakefs不能自动嘲笑这一点.因此,在我的测试中,我使用它的Patcher
类(我还try 了其他方法)来重新加载相应的模块.
from pathlib import Path
from pyfakefs.fake_filesystem_unittest import Patcher
from pyfakefs.fake_pathlib import FakePathlibModule
from . import my_class
def test_class_variable(fs):
# my_class.MyClass.FILE_PATH = Path('/etc/ids.json')
with Patcher(modules_to_reload=[my_class]):
assert type(my_class.MyClass.FILE_PATH) is FakePathlibModule.PosixPath
但它仍然没有被嘲笑.
如果我取消对注释行的注释,则测试成功.
我应该怎么做才能模拟类变量?