0
我有下面的代碼。文件foo.py有:模擬的函數不檢查參數
#!/usr/bin/python3
import time
class Foo():
def foo(self, num):
time.sleep (10)
return num + num
文件mock_test.py有:
#!/usr/bin/python3
from mock import patch
import foo
import unittest
class FooTestCase(unittest.TestCase):
@patch('foo.Foo.foo') # filename, classname, fn name
def test_one(self, mock_foo):
mock_foo.return_value = 'mock return value'
myobj = foo.Foo()
print (myobj.foo())
if __name__ == '__main__':
unittest.main()
和文件regular_test.py有:
#!/usr/bin/python3
import foo
import unittest
class FooTestCase(unittest.TestCase):
def test_one(self):
f = foo.Foo()
print (f.foo(20))
if __name__ == '__main__':
unittest.main()
現在,如果我跑regular_test.py,它檢查傳遞給f.foo()的參數的數量,但mock_test.py沒有這樣的事情!模擬測試是否應該僅用於加速函數執行?如果我用0個參數或多個參數調用foo(),爲什麼不標記錯誤?
感謝。我如何設置它接受與它應該模擬的函數相同數量的參數? – whirlaway