模拟标准输入 - python 3中的多行

2024-02-14

我是 python 新手,一直在使用 python 3 进行学习。我正在使用 python 的单元测试框架来测试我的代码。

问题 :-

我需要进行单元测试的函数以以下方式接受输入:-

def compare():
   a, b, c = input().strip().split(' ')
   d, e, f = input().strip().split(' ')
   # other code here

我正在使用以下测试用例来模拟输入:-

class TestCompare(unittest.TestCase):

   @patch("builtins.input", lambda: "1 2 3")
   @patch("builtins.input", lambda: "4 5 6")
   def test_compare(self):
      self.assertEqual(compare(), "1 1")

我面临的问题是,当运行测试用例时,变量三元组 a、b、c 和 d、e、f 具有相同的值 - 1,2,3

我一直在尝试找到一种方法来注入第二组输入来运行我的测试,但徒劳无功。

非常感谢有关上述内容的任何帮助。

解决方案环境:- Python 3


你不能像这样修补两次。您必须使用在后续调用中返回不同值的对象来修补它一次。这是一个例子:

fake_input = iter(['1 2 3', '4 5 6']).__next__

@patch("builtins.input", fake_input)
def test_compare(self):
    ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

模拟标准输入 - python 3中的多行 的相关文章

随机推荐

  • BottomSheetDialogFragment 内 LazyColumn 的滚动问题

    I use LazyColumn inside BottomSheetDialogFragment 但如果滚动LazyColumn然后列出 UPBottom工作表对话框滚动而不是LazyColumn列表 似乎BottomSheetDialo
  • UILabel 动画数字变化

    我有一个显示用户得分的 UILabel 并且分数会不时发生变化 有没有一种方法可以动画化这种变化 慢慢地将这个数字从当前值增加到结果值 就像是http josheinstein com blog index php 2010 02 silv
  • 如何在没有表情混合的情况下制作WPF动画

    有没有一种方法或工具可以让我在不使用 Expression Blend 的情况下制作 WPF 动画和控件 也许只使用 Visual Studio 2008 或其他东西 您可以使用 Visual Studio ALSO 可视化网络开发人员 X
  • 将 clang_complete 与 OS X 框架结合使用

    如果我将以下内容保存到 tmp test cpp include
  • 在 R 中向多直方图添加关键图例

    如何在下面的图中添加关键图例 我希望在右上角的某个地方有一个关键图例 其中有两个短水平颜色条 红色的应该说 整形手术出了问题 蓝色的应该说 德国 我使用以下代码来生成该图 bar2 lt read table div ana mut bar
  • Android 上的 Volley + OkHttp 在状态 200 响应上给出错误

    当我仅使用 Volley 发出请求时 一切都很顺利 我的 StringRequest 会转到 onResponse 但是当我切换到 Volley Okhttp 组合时 我的请求通过 我收到与以前相同的响应 但随后收到以下错误消息 E Vol
  • 从 Cpanel git 克隆项目,显示此错误“ssh 远程主机标识已更改”

    我知道类似的问题已经被问过很多次了 但这里有一个区别 尝试从 cpanel 共享托管服务器克隆项目 如果尝试使用此命令sudo git clone ssh email protected cdn cgi l email protection
  • C 代码的输出,例如通过引用调用 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 给定这个
  • 如何在 Android 中呈现泰米尔语 unicode

    Okay 所以我的问题是我有一个 XML 泰米尔语 unicode feed 我想获取它并将其显示在 Android 应用程序中 当我尝试执行此操作时 由于 Android 没有对泰米尔语的本机支持 因此必须使用自定义字体 但随后问题就出现
  • SQL Server 2005 T-SQL 中的 Base64 编码

    我想编写一个 T SQL 查询 将字符串编码为 Base64 字符串 令人惊讶的是 我找不到任何用于执行 Base64 编码的本机 T SQL 函数 是否存在本机函数 如果没有 在 T SQL 中进行 Base64 编码的最佳方法是什么 我
  • UIImage调整大小(缩放比例)[重复]

    这个问题在这里已经有答案了 可能的重复 调整 UIImage 的纵横比 https stackoverflow com questions 1703100 resize uiimage with aspect ratio 下面的代码完美地调
  • Git 因 100% cpu 使用而挂起(这是磁盘问题)

    有一些操作挂在我的存储库之一上 git gc 在 计数对象 7409 处以 100 使用率挂起 当我启动 gitk 时 它会启动此命令 该命令也会因 100 CPU 使用率而挂起 git log no color z pretty raw
  • EPPlus“System.OutOfMemoryException”

    我正在尝试使用打开 38MB Excel 文件EPPlus v4 0 我可以将它传递给Excel包变量 但是当我尝试从该变量获取工作簿时 它会导致我出现 系统内存不足异常 这是我的代码 Dim temppath Path GetTempPa
  • 如何使工具栏后退按钮居中?

    我在尝试将后退按钮置于支持工具栏中央时遇到问题 我在 ActionBarActivity 中使用它
  • 在 CentOS 中使用 /etc/resolv.conf 解析 AD 域

    我已使用 Realm 配置 SSSD 以使用 AD 凭据登录 centOS VM 请参考设置here https stackoverflow com questions 63705156 sssd integration with micr
  • 如何用Java编写UTF-8文件?

    我有一些当前代码 问题是它创建了一个 1252 代码页文件 我想强制它创建一个 UTF 8 文件 任何人都可以帮助我使用这段代码 正如我所说 它目前有效 但我需要强制保存在 utf 上 我可以传递参数或其他东西吗 这就是我所拥有的 非常感谢
  • 在 Windows 中使用 Python 获取日期格式

    在给我的作业示例代码中 出现了这一行 date format locale nl langinfo locale D FMT 但在 Windows 中 该行返回以下错误 File C Users Shadark Dropbox IHM P3
  • 解释 OpenGL ES 背景图像的工作原理

    有人可以解释一下如何在 OpenGL ES 视图上渲染背景图像吗 从设置 OpenGL 环境的基础知识开始 我是 OpenGL 的新手 I m seeing https stackoverflow com questions 3387132
  • 如何使用 Firefox 插件从硬盘读取/写入文件?

    是否可以开发一个可以从硬盘读取 写入文件的 Firefox 插件 我应该使用什么代码 它只是链接 Hypnos 和 ephemient 中提供的代码的复制 和组合 const Cc Ci require chrome create prop
  • 模拟标准输入 - python 3中的多行

    我是 python 新手 一直在使用 python 3 进行学习 我正在使用 python 的单元测试框架来测试我的代码 问题 我需要进行单元测试的函数以以下方式接受输入 def compare a b c input strip spli