我想对从自定义包中导入特定模块的模块进行单元测试。虽然我在测试函数中对其进行了模拟,但是调用该函数时并没有在我的测试函数中调用该模拟函数。
我尝试使用 sys.modules ['RR.nx.expression'] = Mock() 但不起作用
test.py
import sys
import unittest
from unittest.mock import Mock
from unittest.mock import patch
from RR.nx import expression <---here
from atools.RRtemp import nx_expr_utilities
class Test(unittest.TestCase):
def test_get_value_from_expression_object(self):
expression.get_value = Mock(return_value = [10,'mm']) <--here this doesnt work
test_obj='dummy'
self.assert_equal(10,nx_expr_utilities.get_value_from_expression_object(test_obj))
if __name__ == "__main__":
sys.modules['RR.nx.expression'] = Mock() <-tried to mock the whole module
unittest.main()
function.py
from RR.nx import expression
def get_value_from_expression_object(expr_object):
value, units = expression.get_value(expr_object)<-i wanna mock this
return value
在function.py中,真正的expression.get_value()被称为eveth,尽管我在测试函数中对其进行了嘲笑。 非常感谢您的帮助。