@patch("dao.qualcomm_transaction_service.QualcommTransactionService.get_max_qualcomm_id",20)
def test_lambda_handler():
lambda_handler(event, None)
我用模拟方法看了你的例子,我的方法希望在本地进行的lambda函数测试中返回20,但是在达到上述方法时,我会得到一个异常int类型对象不可调用。请让我知道这里出了什么问题。
这是我正在尝试模拟的实际方法,它使用lambda函数(在本地测试lambda)进行调用:
last_max_id = QualcommTransactionService().get_max_qualcomm_id(self.subscriber_id)
我的文件夹结构如下:
functions
-subscription_lambda
-qt_lambda_event.py
layers
-subscription-service
-python
-soap
-qt
-qualcomm-transaction-main.py
-config
-data-access-layer
-python
-dao
-qualcomm_transaction-service.py
答案 0 :(得分:0)
回答我自己的问题,我只需要在返回Mock()对象并将值返回为20的路径中传递20
maxidMock = Mock()
maxidMock.return_value = 20
@patch("dao.qualcomm_transaction_service.QualcommTransactionService.get_max_qualcomm_id",20)
def test_lambda_handler():
lambda_handler(event, None)
maxidMock.assert_called_with(6)