我正在尝试使用子进程(Python27)通过python命令测试python脚本。当我像这样测试时,是否可以模拟脚本中使用的功能?
例如,
example.py
import example1
if __name__ == '__main__':
result = example1.testfunction()
print result
example1.py
def testfunction():
print "testing"
return True
我想像这样测试example.py
脚本
test_example.py
import unittest
import subprocess
import mock
from mock import patch
class Example(unittest.TestCase):
@patch('example1.testfunction')
def test_example_script(self, mock_testfunction):
mock_testfunction.returnvalue = False
cmd = ["python", "example.py"]
task = subprocess.Popen(cmd)
stdout, stderr = task.communicate()
print stdout
self.assertFalse(stdout)
基本上,补丁在我的代码中不起作用,我得到的输出是
True
AssertionError: True is not false
是否可以在testfunction()
中模拟example1.py
?
我可以强制testfunction()
返回False
以便我的输出为False
吗?