我正在模拟一个类的方法,并希望测试从中调用该方法的类的实例,以测试我的函数的创建部分是否按预期工作。
在我的特定情况下,尝试写入Excel文件,我不希望发生这种情况,即do_stuffbar_instance
def create_instance(*args):
return Bar(*args)
class Bar():
def __init__(self, *args):
self.args = args
def do_stuff(self):
pass
def foo(*args):
bar_instance = create_instance(*args)
bar_instance.do_stuff()
然后在测试文件中
from unittest import TestCase
from unittest.mock import patch
from path.to.file import foo
class TestFoo(TestCase):
@patch('path.to.file.Bar.do_stuff')
def test_foo(self, mock_do_stuff):
test_args = [1]
_ = foo(*test_args)
# Test here the instance of `Bar` that `mock_do_stuff` was called from
# Something like
actual_args = list(bar_instance.args)
self.assertEqual(test_args, actual_args)
我在运行后在测试函数中放置了一个中断,但是从访问它的实例的模拟方法中看不到任何方法,并且有点卡住了。我不想进一步模拟代码,因为我想确保正在创建正确的实例。foo(*test_args)BarBarBar
POPMUISE
莫回无
相关分类