Python 使用unittest模拟函数
我正在尝试对一个函数“check()”进行单元测试,该函数调用另一个函数“test()” 我想模拟test()并调用mocked()函数来代替它 这是我的密码:Python 使用unittest模拟函数,python,unit-testing,mocking,python-unittest,Python,Unit Testing,Mocking,Python Unittest,我正在尝试对一个函数“check()”进行单元测试,该函数调用另一个函数“test()” 我想模拟test()并调用mocked()函数来代替它 这是我的密码: import unittest import mock def check(): return test() def test(): return "test" def mocked(): return "mocked" class CheckTest(unittest.TestCase): @mo
import unittest
import mock
def check():
return test()
def test():
return "test"
def mocked():
return "mocked"
class CheckTest(unittest.TestCase):
@mock.patch(target='test.test', spec=True, new_callable=mocked)
def test_test(self, mocked):
self.assertEqual(check(), "mocked")
if __name__ == '__main__':
unittest.main()
我只想用字符串替换test()返回的字符串。我不能重写或更改test()或check()函数 有点简单:您可以设置
返回\u值来执行此操作:
import unittest
import mock
def check():
return test()
def test():
return "test"
class CheckTest(unittest.TestCase):
@mock.patch('__main__.test')
def test_test(self, mocked):
mocked.return_value = "mocked"
self.assertEqual(check(), "mocked")
if __name__ == '__main__':
unittest.main()
mocked
是您的测试功能的模拟版本。@user3688148如果您从控制台使用它,您必须使用\uuuuuu main\uuuuu
而不是名称模块。@user3688148如果您认为它有用,您也应该单击向上箭头,而不仅仅是接受它:)我是新来的,所以我不能投您的赞成票(至少需要15分).