如何在python的main()函数中模拟对象?

我试图模拟data1和data2并尝试提供返回值。 我有以下代码:

import pandas 

def main():
    data1= pandas.read_excel('path1')
    data2= pandas.read_excel('path2')

if __name__ == '__main__':
    main()
import test1
from unittest.mock import patch
import pandas

class Testdata(unittest.TestCase):

    @patch('test1.main.data1')
    @patch('test1.main.data2')
    def test_main(self,mock_data1,mock_data2):    
        mock_data1.return_value = pandas.DataFrame([some dataframe])
        mock_data2.return_value = pandas.DataFrame([some dataframe])
        test.main()
        data1.assert_called_once()
        data2.assert_called_once()

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

我遇到以下错误:

Error
Traceback (most recent call last):
  File "C:\apps\python\3.6.2\lib\unittest\case.py",line 59,in testPartExecutor
    yield
  File "C:\apps\python\3.6.2\lib\unittest\case.py",line 605,in run
    testMethod()
  File "C:\apps\python\3.6.2\lib\unittest\mock.py",line 1171,in patched
    arg = patching.__enter__()
  File "C:\apps\python\3.6.2\lib\unittest\mock.py",line 1227,in __enter__
    self.target = self.getter()
  File "C:\apps\python\3.6.2\lib\unittest\mock.py",line 1397,in <lambda>
    getter = lambda: _importer(target)
  File "C:\apps\python\3.6.2\lib\unittest\mock.py",line 1080,in _importer
    thing = __import__(import_path)
ModuleNotFoundError: No module named 'main'

如何解决此问题以及如何模拟data1和data2并为其提供返回值?

wyw521 回答:如何在python的main()函数中模拟对象?

在看完整代码之前不能说太多,但是我想在开头添加import unitest可以完成工作。

本文链接:https://www.f2er.com/3166806.html

大家都在问