2014-09-04 212 views
0

我會盡量讓自己清楚。我一直在練習單元測試,現在我正試圖弄清楚如何測試下面的代碼。帶範圍功能的單元測試

def main(): 

    for i in range(100): 
     print("Argh!") 

所以我只是想測試100次「唉!」的迭代。確保stdout通過測試。我甚至不知道如何開始單元測試。在這一個,雖然看起來很簡單。

謝謝大家提前。

+0

python2還是python3? – mgilson 2014-09-04 22:04:31

回答

0

假設你使用python3,這成爲容易使用模擬...

import unittest 
import mock # possibly "from unittest import mock" depending on version. 
import main_module 

class TestMain(unittest.TestCase): 
    def test_main(self): 
     with mock.patch.object(main_module, 'print') as mock_print: 
      mock_module.main() 
     expected_calls = [mock.call('Argh!') for _ in range(100)] 
     mock_print.assert_has_calls(expected_calls) 

if __name__ == '__main__': 
    unittest.main() 
+0

不錯!你介意添加單元測試課的其餘部分嗎? – SalceCodec 2014-09-04 22:07:30