【问题标题】:(Monkey) patch for micro python unit test(Monkey) 用于微型 python 单元测试的补丁
【发布时间】:2018-05-06 21:01:01
【问题描述】:

我找不到任何例子,我会尽量把问题具体化:

鉴于 micropython 有某种形式的单元测试库,我该如何做猴子补丁或类似的东西来替换测试用例中的系统对象输出或输入。

希望编写的测试用例在不更改实际实现代码的情况下无法模拟,例如使用补丁替换为模拟的网络或文件系统对象 - 或类似的手动方式覆盖系统对象以进行测试。

【问题讨论】:

  • 这是一个明显修补日期时间模块pypkg.com/pypi/micropython-schedule/f/test_schedule.py的示例
  • 谢谢,看起来很有趣,但它似乎在 python2 下执行得很好,但是在 micropython 的附加库中没有可用的“模拟”模块。耻辱......回到绘图板
  • 是的,很奇怪,我看不出他们是如何运行测试的。可能值得联系包维护者。

标签: python unit-testing monkeypatching micropython


【解决方案1】:

你可以试试我在https://forum.micropython.org/viewtopic.php?t=4475#p25925中介绍的技巧

# load in the module for patching (make sure this gets run before other imports)
import modulename
# create a modified version of modulename, cherry-picking from the real thing
patchedmodule = ...
# replace the module with your modified one for all future imports
sys.modules['modulename']=patchedmodule

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    • 2017-11-18
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多