【发布时间】:2020-02-02 05:24:27
【问题描述】:
我正在编写一个 pytest 插件,它应该测试旨在在一组特定环境中工作的软件。
我正在编写的软件在一个更大的框架中运行,这使得某些 Python 模块只有在框架中运行我的 Python 软件时才可用。
为了测试我的软件,我需要“模拟”或伪造整个模块(实际上,相当多)。我需要以某种类似的方式实现它的功能,但我的问题是我应该如何使用 py.test 插件使这个假 Python 模块可用于我的软件代码?
例如,假设我的一个源文件中有以下代码:
import fwlib
def fw_sum(a, b):
return fwlib.sum(a, b)
但是,fwlib 模块只能由我运行我的软件的框架提供,我无法在其中进行测试。
如何确保在 pytest 插件中名为 fwlib 的模块已在 sys.modules 中定义?当然,我需要自己实现fwlib.sum。我正在寻找有关如何做到这一点的建议。
【问题讨论】: