【发布时间】:2017-07-31 12:35:56
【问题描述】:
所以我有单元测试用例类和一个我想测试的类。这个类中有一个函数,它有一个我用来运行我正在测试的方法的函数。为了可视化问题,我将在下面编写一些抽象代码:
import needed_module
from casual_class import CasualClass
class CasualClassTests(unittest.TestCase):
def setUp(self):
self.casual_class = CasualClass()
def _run(self, func):
result = needed_module.runner(func)
return result
@mock.patch('needed_module.runner', return_value='test_run_output')
def test_get_that_item(self, mocked_runner):
result = self._run(self.casual_class.get_that_item())
以及被测试的类:
import needed_module
class CasualClass:
def get_that_item(self):
#..some code..
run_output = needed_module.runner(something)
return something2
在此代码中,get_that_item 代码甚至不会运行,因为 runner 被模拟了。我想要实现的是在测试用例中运行 required_module.runner original 并在测试类中模拟一个。我在网上搜索了太久,无法解决这个问题...
【问题讨论】:
标签: python unit-testing testing mocking python-unittest