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')