【问题标题】:Monkeypatching input causes attribute error during testingMonkeypatching 输入导致测试期间出现属性错误
【发布时间】:2016-07-14 18:36:09
【问题描述】:

我正在尝试在 pytest 中对输入函数进行monkeypatch 以模拟用户输入,但出现属性错误。

当我使用 mock.patch.object 时,我也会收到同样的错误。但是当我在常规 Python 环境中时,我能够轻松地对输入进行猴子补丁,我只在测试中得到这个错误。

什么可能导致这个问题?

编辑 使用 unittest.mock 添加额外的屏幕截图尝试相同的事情

【问题讨论】:

  • 请不要发布屏幕截图,而是您的实际代码。

标签: python python-3.x pytest


【解决方案1】:

__builtins__ 是一个实现细节。你不应该碰它。您正在寻找的是 __builtin__(没有 s)或 builtins 模块,具体取决于您使用的是 Python 2 还是 Python 3。

从你得到的错误细节来看,你使用的是 Python 3,所以你想要builtins

【讨论】:

  • 我在 Python3 上,但我需要将 input() 函数替换为返回假输入的函数。尝试不使用装饰器或模拟模块stackoverflow.com/questions/18161330/…
  • @canyon289 我很困惑。您提供了一个链接,该链接使用装饰器并使用模拟有两个答案。如果您正在寻找输入以返回虚假输入,那么您就是在模拟输入的功能。所以,我不确定你到底想做什么。
  • 我的程序的一部分接受用户输入并返回一个值。我正在尝试使用 pytest 进行测试,并且该测试的一部分是让输入函数返回一个值。为了自动化该测试,我正在尝试使用一个将返回测试中设置的字符串的常规输入函数进行猴子补丁/模拟。无论我使用 mock 模块还是 pytest monkeypatch 函数,我都会遇到同样的错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-24
  • 1970-01-01
  • 1970-01-01
  • 2020-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多