我有模块report_generator.py,
from datetime import datetime
def prepart_report():
# some code to generate report
report_name = 'my_report_{}.xlsx'.format(started_at)
if __name__ == '__main__':
started_at = datetime.now()
log_file_name = 'my_repot_{}.log'.format(started_at)
'started_at'全局变量,用于日志文件名和报告文件名。
测试模块test_report_generator.py,
import report_generator
class TestReportGenerator(unittest.TestCase):
def test_prepare_report(self):
started_at = datetime.now()
with path.object(report_generator, 'started_at', started_at):
report_generator.prepare_report()
在测试案例中,我正在尝试修补 started_at 变量。我收到模块没有属性'started_at'错误。错误的原因是当我在测试用例模块 __名称__ 中导入模块时,不会是“ __ main __” 。因此,我该如何打补丁或为此编写测试用例的最佳方法是
以下是我通过谷歌搜索找到的解决方案
def prepart_report(started_at=started_at):
答案 0 :(得分:1)
由于该属性不存在,您可以对其进行设置。
import report_generator
class TestReportGenerator(unittest.TestCase):
def test_prepare_report(self):
started_at = datetime.now()
report_generator.started_at = started_at
report_generator.prepare_report()