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