我已阅读以下文章:
Change OS for unit testing in Python
但是我的函数 get_excecution_file_for_os 中的变量 platform 保持不变。
我的单元测试设置如下:
from mypackage import Mymodule
import unittest
from unittest import mock
def setUp(self):
Mymodule = mock.MagicMock()
Mymodule.configure_mock(platform='win32')
def test_get_excecution_file_for_os(self):
result = Mymodule.get_excecution_file_for_os()
self.assertEqual("/run_osx.command", result)
我的模块:
from sys import platform
def get_excecution_file_for_os():
if platform == "linux" or platform == "linux2":
# linux
pass
elif platform == "darwin":
# OS X
return "/run_osx.command"
elif platform == "win32":
#Windows
return "\\run_windows.cmd"
我在setup()中用sys替换了Mymodule,但这也不起作用。