【发布时间】:2020-02-27 17:19:16
【问题描述】:
我遇到的问题大致如下:
在文件data.py我有
from typing import ClassVar
from tinydb import TinyDB
from dataclasses import dataclass
@dataclass
class Data:
db: ClassVar = TinyDB("some_path")
@property
def some_data(self):
return 100
我想模拟some_data 方法。
我试过了:
import pytest
import pandas as pd
from package1.data import Data
@pytest.fixture
def mocked_raw_data(mocker):
m = mocker.patch.object(
Data, "some_data", return_value=10, new_callable=mocker.PropertyMock
)
)
return m
def test_some_data(mocked_raw_data):
assert Data().some_data == 2
但显然这会导致 db 方法类变量出错。我怎样才能模拟这个变量呢?我的方法通常有意义吗?
【问题讨论】:
标签: python unit-testing mocking pytest