python-3.x - 在单元测试期间覆盖 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() 实现这一点。
解决方案
以下重构通过使其更加模块化,使您的代码可按您的要求进行测试:
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()
然后您可以单独测试单元测试中的所有功能。
推荐阅读
- spring-batch - Spring Batch - 创建两个数据源以及如何自定义使用其他属性
- spring - Apache Artemis 不会停止扫描过期时间
- excel - VB.NET 中的 VBA 等效项
- javascript - .not(this) 在点击时不起作用。我没有使用列表
- oracle - 使用 KEY 加载 CLOB
- python - 网格搜索适合不接受张量列表
- angular - Kendo Angular Editor setHTML:在特定位置或光标后插入 HTML 内容
- android - createDrawerNavigator | undefined 不是函数
- extjs - 在 hbox 内动态添加 hbox 和元素
- android - Service com.firebase.jobdispatcher.GooglePlayReceiver 泄露了原来绑定在这里的ServiceConnection JobServiceConnection