0
我想写一个测试,以确保我的程序生成一个特定的输出给定一个特定的输入。我已经成功地嘲笑了我想测试的输入,但是我一直无法模拟输出函数。我对我尝试过的东西和错误留下了一些评论。我怎样才能使这些测试工作?如何测试在实例化对象期间创建的函数?
这是我的测试:
from src_dir import my_class
class Mock_Dependency:
def __init__(self):
pass
def print_stuff(self, stuff):
##return MagicMock() - does not have attribute called
return stuff
@fixture
@patch('src_dir.dependency.Dependency, Mock_Dependency)
def subject():
return my_class.My_Class()
##@patch('subject.print_stuff', MagicMock) - No module named subject
##@patch('my_class.My_Class.print_stuff', MagicMock) - does not have attribute print stuff
def test_print_stuff_was_called(subject):
assert subject.print_stuff.called
def test_print_stuff_printed(subject):
assert subject.print_stuff == 'a word'
这是我的类:
from dependency import Dependency
class My_Class:
def __init__(self):
self.print_stuff = Dependency.print_stuff()
def run(self):
self.print_stuff('a word')