【发布时间】:2018-11-05 14:29:54
【问题描述】:
我正在模拟一个 python 的内部库类(服务器),它提供到 HTTP JSON-RPC 服务器的连接。但是在运行测试时,该类并不是在嘲笑。该类用于调用项目类,该类是有效实例化 Server 类的其他类的包装器。
我在此处提取代码中对我所说的内容有意义的部分。
单元测试:
@patch('jsonrpc_requests.jsonrpc.Server')
def test_get_question_properties(self, mockServer):
lime_survey = Questionnaires()
# ...
班级问卷调查:
class Questionnaires(ABCSearchEngine):
""" Wrapper class for LimeSurvey API"""
def get_question_properties(self, question_id, language):
return super(Questionnaires, self).get_question_properties(question_id, language)
班级问卷从班级ABCSearchEnginge(ABC) 调用方法get_question_properties。该类初始化Server 类以提供与外部API 的连接。
ABCSearchEnginge 类:
class ABCSearchEngine(ABC):
session_key = None
server = None
def __init__(self):
self.get_session_key()
def get_session_key(self):
# HERE the self.server keep getting real Server class instead the mocked one
self.server = Server(
settings.LIMESURVEY['URL_API'] + '/index.php/admin/remotecontrol')
由于测试是模拟服务器类,为什么它不模拟?缺少什么?
【问题讨论】:
标签: python django unit-testing mocking