[英]Mocking a function inside a function in Python Unit Testing using Mock
我正在使用Mock進行Python單元測試。 我正在測試一個函數foo
,它包含一個不返回任何內容的函數bar
,但填充變量x
(類型:io.StringIO)作為副作用。 我曾經嘲笑bar
使用MagicMock,但我不知道如何分配到x
從測試腳本。
我有以下情況:
def foo():
x = io.StringIO()
bar(x) # x is filled with some string by bar method
here some operation on x
要為foo
編寫一個單元測試用例,我已經使用MagicMock(返回值=無)模擬了bar
,但是如何分配給foo
所需的x
。
你需要模擬io.StringIO
,然后你可以用其他東西替換它:
@mock.patch('mymodule.io.StringIO')
def test_foo(self, mock_stringio):
mock_stringio.return_value = mock.Mock()
請注意return_value
的使用,這意味着您正在StringIO()
從StringIO()
調用返回的實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.