我有一个大致如下的问题:
在一个文件中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
方法类变量一个错误。我怎样才能模拟这个变量呢?我的方法通常有意义吗
你用了
@pytest.mark.django_db
吗这将有助于在单独的数据库(而不是生产数据库)上测试数据
关于你关于模仿的问题,你可以用猴子补丁来模仿
例如
相关问题 更多 >
编程相关推荐