【发布时间】:2019-10-18 16:18:24
【问题描述】:
我想测试一个导入另一个模块的函数。
所以我想模拟模块。
所以我的测试功能:
def test_validate_transaction():
dataset_id = "idx"
transaction_id = "idy"
transaction = {
"transaction_rid" : transaction_id,
"is_successful" : True
}
with mock.patch('table_management.get_last_transaction_id', return_value=transaction) :
assert validate_transaction(dataset_rid,transaction_rid) == False
我要测试的功能是
import json
import os
from table_management import get_last_transaction_id
def validate_transaction(dataset_id,transaction_id):
try:
transaction = get_last_transaction_id(dataset_rid)
return True if transaction['transaction_id'] != transaction_rid or transaction['is_successful']==False else False
except Exception as e:
print("An exception occurred " + str(e))
return {}
但是通过这样做,我收到错误:
..\..\..\env\lib\site-packages\mock\mock.py:1378: in __enter__
self.target = self.getter() ..\..\..\env\lib\site-packages\mock\mock.py:1548: in <lambda>
getter = lambda: _importer(target)
target = 'table_management'
def _importer(target):
components = target.split('.')
import_path = components.pop(0)
thing = __import__(import_path)
E ImportError: No module named table_management
..\..\..\env\lib\site-packages\mock\mock.py:1231: ImportError
你知道缺少什么吗?
【问题讨论】: