首页 > 解决方案 > 在单元测试期间覆盖 python 语句

问题描述

我有 2 个 python 程序。一个是 main.py,另一个是 test_main.py 这是我的主程序(文件夹位置 ut3/ut)

ut3/ut$ vi main.py
def functiona():
    print("function a  ***")
    functionb()
 
 
def functionb():
    print("function b  ***")
    functionc()
 
 
def functionc():
    print("function c  ***")
 
 
def fn_main():
    functiona()
 

这是我的单元测试文件(文件夹位置:ut3)

ut3$ vi test_main.py
 
from ut import main
 
main.fn_main()

当我执行 test_main.py 时,它会执行 main.py 程序中的所有函数。我的要求是:

第一个函数:我只想调用和执行functiona()。有没有办法覆盖(或删除 functionb 的语句)?第二个函数:只需要调用functionc。我可以在下一个语句中使用 main.functionc() 实现这一点。

标签: python-3.xpython-unittest

解决方案


以下重构通过使其更加模块化,使您的代码可按您的要求进行测试:

def functiona():
    print("function a  ***")


def functionb():
    print("function b  ***")


def functionc():
    print("function c  ***")


def functionabc():
    functiona()
    functionbc()


def functionbc():
    functionb()
    functionc()


def fn_main():
    functionabc()

然后您可以单独测试单元测试中的所有功能。


推荐阅读