使用模拟库在循环中进行用户输入的 Python 测试

2024-02-17

我正在尝试使用模拟库来测试一段代码。在此代码中,用户原始输入在 for 循环中被接受,如下所示。我已经写了测试用例test_apple_record可以为托盘编号提供单个用户输入值。

但是,对于 for 循环中的每次迭代,它只采用与预期相同的值 (5)。

问题是:如何为每次迭代提供不同的值?例如,当i=0、1和2时,托盘编号的具体值分别为5、6和7。

class SomeClass(unittest.TestCase):    
    def apple_counter(self):
        apple_record = {}
        for i in range(3):
            apple_tray = input("enter tray number:")
            apple_record[apple_tray]  =  (i+1)*10
            print("i=%d, apple_record=%s"%(i, apple_record))

    def test_apple_record(self):
        with mock.patch('builtins.input', return_value='5'):
            self.apple_counter()

您可以使用side_effect带有可迭代的参数以提供返回值:

with mock.patch('builtins.input', side_effect=[5, 6, 7]):
    self.apple_counter()

See the docs https://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock:

If 副作用是一个可迭代对象,那么每次调用模拟都会返回可迭代对象的下一个值。

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

使用模拟库在循环中进行用户输入的 Python 测试 的相关文章

  • 使用 python 进行串行数据记录

    Intro 我需要编写一个小程序来实时读取串行数据并将其写入文本文件 我在读取数据方面取得了一些进展 但尚未成功地将这些信息存储在新文件中 这是我的代码 from future import print function import se
  • Python模块可以访问英语词典,包括单词的定义[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 python 模块 它可以帮助我从英语词典中获取单词的定义 当然有enchant 这可以帮助我检查该单词是否存在于英语中
  • 从 ffmpeg 获取实时输出以在进度条中使用(PyQt4,stdout)

    我已经查看了很多问题 但仍然无法完全弄清楚 我正在使用 PyQt 并且希望能够运行ffmpeg i file mp4 file avi并获取流式输出 以便我可以创建进度条 我看过这些问题 ffmpeg可以显示进度条吗 https stack
  • 填充两个函数之间的区域

    import matplotlib pyplot as plt import numpy as np def domain x np arange 0 10 0 001 f1 lambda x 2 x x 2 0 5 plt plot x
  • 从零开始的 numpy 形状意味着什么

    好的 我发现数组的形状中可以包含 0 对于将 0 作为唯一维度的情况 这对我来说是有意义的 它是一个空数组 np zeros 0 但如果你有这样的情况 np zeros 0 100 让我很困惑 为什么这么定义呢 据我所知 这只是表达空数组的
  • 如何创建一个语句来打印以特定单词开头的单词? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何在 python 中打印从特定字母开始的单词 而不使用函数 而是使用方法或循环 1 我有一个字符串 想要打印以 m 开头的单词 S
  • 如何使用 jest 模拟第三方库

    我正在开发一个node js应用程序使用nestjs我有一堂课叫LoggerService如下 export class LoggerService private logger Rollbar constructor this logge
  • python suds SOAP 请求中的名称空间前缀错误

    我使用 python suds 来实现客户端 并且在发送的 SOAP 标头中得到了错误的命名空间前缀 用于定义由element ref 在 wsdl 中 wsdl 正在引用数据类型 xsd 文件 请参见下文 问题出在函数上GetRecord
  • TensorFlow的./configure在哪里以及如何启用GPU支持?

    在我的 Ubuntu 上安装 TensorFlow 时 我想将 GPU 与 CUDA 结合使用 但我却停在了这一步官方教程 http www tensorflow org get started os setup md 这到底是哪里 con
  • 奇怪的 MySQL Python mod_wsgi 无法连接到 'localhost' (49) 上的 MySQL 服务器问题

    StackOverflow上也有类似的问题 但我还没有发现完全相同的情况 这是在使用 MySQL 的 OS X Leopard 机器上 一些起始信息 MySQL Server version 5 1 30 Apache 2 2 13 Uni
  • 首先对列表中最长的项目进行排序

    我正在使用 lambda 来修改排序的行为 sorted list key lambda item item lower len item 对包含元素的列表进行排序A1 A2 A3 A B1 B2 B3 B 结果是A A1 A2 A3 B
  • 将 matplotlib 颜色图集中在特定值上

    我正在使用 matplotlib 颜色图 seismic 绘制绘图 并且希望白色以 0 为中心 当我在不进行任何更改的情况下运行脚本时 白色从 0 下降到 10 我尝试设置 vmin 50 vmax 50 但在这种情况下我完全失去了白色 关
  • 将 2D NumPy 数组按元素相乘并求和

    我想知道是否有一种更快的方法 专用 NumPy 函数来执行 2D NumPy 数组的元素乘法 然后对所有元素求和 我目前使用np sum np multiply A B 其中 A B 是相同维度的 NumPy 数组m x n 您可以使用np
  • Python 将日志滚动到变量

    我有一个使用多线程并在服务器后台运行的应用程序 为了无需登录服务器即可监控应用程序 我决定包括Bottle http bottlepy org为了响应一些HTTP端点并报告状态 执行远程关闭等 我还想添加一种查阅日志文件的方法 我可以使用以
  • mac osx 10.8 上的初学者 python

    我正在学习编程 并且一直在使用 Ruby 和 ROR 但我觉得我更喜欢 Python 语言来学习编程 虽然我看到了 Ruby 和 Rails 的优点 但我觉得我需要一种更容易学习编程概念的语言 因此是 Python 但是 我似乎找不到适用于
  • 如何在 OSX 上安装 numpy 和 scipy?

    我是 Mac 新手 请耐心等待 我现在使用的是雪豹 10 6 4 我想安装numpy和scipy 所以我从他们的官方网站下载了python2 6 numpy和scipy dmg文件 但是 我在导入 numpy 时遇到问题 Library F
  • 限制 django 应用程序模型中的单个记录?

    我想使用模型来保存 django 应用程序的系统设置 因此 我想限制该模型 使其只能有一条记录 极限怎么办 尝试这个 class MyModel models Model onefield models CharField The fiel
  • Elastic Beanstalk 中的 enum34 问题

    我正在尝试在 Elastic Beanstalk 中设置 django 环境 当我尝试通过requirements txt 文件安装时 我遇到了python3 6 问题 File opt python run venv bin pip li
  • 从 Twitter API 2.0 获取 user.fields 时出现问题

    我想从 Twitter API 2 0 端点加载推文 并尝试获取标准字段 作者 文本 和一些扩展字段 尤其是 用户 字段 端点和参数的定义工作没有错误 在生成的 json 中 我只找到标准字段 但没有找到所需的 user fields 用户
  • 您可以使用关键字参数而不提供默认值吗?

    我习惯于在 Python 中使用这样的函数 方法定义 def my function arg1 None arg2 default do stuff here 如果我不供应arg1 or arg2 那么默认值None or default

随机推荐

  • 属性表模式与将所有属性存储在 json 列中[重复]

    这个问题在这里已经有答案了 我想要一些关于模型可以在通过关系访问的属性表中拥有的所有属性 使用 Laravel 关系 与将所有属性 设置存储在同一个表中但在 json 列中的反馈 目前 我的应用程序有一个名为 设置 的属性表 它本质上也是多
  • Django“xxxxxx 对象”在管理操作侧边栏中显示自定义

    我想更改管理员最近更改侧边栏显示添加的 对象 名称的默认行为 参考下图 我想更改它们在管理中的命名方式 理想情况下 我希望能够将其从 MyModelName 对象 更改为 策略 对象示例中的 策略 策略的 策略名称 字段的值 我在想 uni
  • htaccess url 重写,url 中包含多个变量

    我想在我的 htaccess 文件上制定一些 url 重写规则 以便此链接 http myseite com index php var1 value1 var2 value2会变成 http myseite com var1 value2
  • 在 Webpack Visual Studio 2017 .NET Core 2.2 捆绑的 Chrome 中调试 Typescript

    有几个问题 但大多数答案似乎是 如果你有 VS 2017 现在应该是默认的 我的调试器无法正常工作 因此我想提供我的具体案例以获得一些帮助 我也是 Typescript 和 Webpack 的新手 可以提供一些背景信息 项目层次结构 www
  • 如何使用 SASS 扩展/修改(自定义)Bootstrap

    我想创建一个基于 Bootstrap 的网站主题 我想扩展 Bootstrap 的默认组件并更改其中的一些组件 为此 我需要access到 Bootstrap 定义的 SASS 变量 这样我就可以覆盖它们 我想过从 GitHub 克隆 Bo
  • 正则表达式查找具有起始词和结束词的最短字符串

    我想找到一种方法来编写正则表达式来搜索以指定的开始子字符串开头并以另一个指定的结束字符串结尾但总长度最小的字符串的出现次数 例如 如果我的起始字符串是bar我的结束字符串是foo当搜索字符串时barbazbarbazfoobazfoo那么我
  • 解析没有 .proto 文件的 Protocol-Buffers

    作为安全项目的一部分 我正在对 Android 应用程序进行逆向工程 我的第一步是发现应用程序和服务器之间交换的协议 我发现正在使用的协议是协议缓冲区 鉴于 protobuf 的性质 需要原始 proto 文件才能反序列化 protobuf
  • 如何使用 Vue JS 设置嵌套数组的增量计数器

    我使用 Vue JS 的数组深度为两层 我需要一个从 0 开始的索引 并为顶部数组中的每个项目递增 这是我的 HTML div div
  • 使用DDD,如何实现批处理?

    我的逻辑包括从一个系统中选择大量记录 执行多个转换 基于业务规则 并将它们插入到另一个系统中 将这些记录中的每一个实例化为对象 对它们执行转换 然后将所有这些对象插入到另一个系统中 这似乎对性能 和内存 产生了很大的影响 在 DDD 中实现
  • 通过 jQuery ajax 提交表单,包括文件上传

    HTML
  • WP8 - 此软件包使用的应用程序名称尚未为此应用程序保留

    我正在将 Windows Phone 8 应用程序提交到应用程序商店 当我单击Review And Submit我收到错误 This package is using an app name that hasn t been reserve
  • 在 Spacy 中基于现有英语模型实现自定义 POS Tagger:NLP - Python

    我正在尝试使用下面的代码重新训练 spacy 中现有的 POS Tagger 以显示某些错误分类单词的正确标签 但它给了我这个错误 警告 未命名向量 这不允许多个向量模型 待加载 形状 0 0 from spacy vocab import
  • 如何在不生成整数的情况下找到斐波那契数的前 k 位数字?

    我必须找到斐波那契数列 2 10 6 以内的所有斐波那契数的前 k 位数字 显然 我们不能将斐波那契数列的值存储在任何变量中 即使计算所有斐波那契数本身也需要大量的计算时间 那么 有没有办法只得到斐波那契数的前k位而不生成整个数呢 由于您只
  • ajax成功返回0

    我需要一点帮助 我设计了我的自定义ajax 函数 这是一个简单的表单 输入 5 个值进行验证 然后通过 ajax 将数据发送到 php 函数 该函数通过电子邮件发送这些详细信息 成功后 将向用户显示弹出窗口以进行确认 我已经应用了验证 并且
  • 如何在启动时启动 Docker for Mac 守护进程?

    我想让 Docker for Mac 在启动时启动 而不是在登录时启动 我该怎么做呢 我想创建一个LaunchDaemon 我只是不知道要启动什么程序 我看到的所有例子似乎都使用docker machine定义一个虚拟机 但文档现在说doc
  • 简短的Python代码来表达“选择较低的值”?

    我的意思是 我正在寻找返回较低值的非常短的代码 例如 a 1 2 3 4 5 6 7 8 9 10 b 1 2 3 4 5 6 7 8 len a 10 len b 8 if fill this in print lesser value
  • 使用 QNetworkAccessManager 的 post() 方法上传文件

    我在使用 Qt 应用程序时遇到一些问题 特别是 QNetworkAccessManager 类 我正在尝试使用 QNetworkAccessManager 的 post 方法执行二进制文件的简单 HTTP 上传 文档指出我可以为 post
  • 在标头中发送会话密钥与仅 HTTP cookie

    我想知道在我的系统中发送会话密钥的最佳选择 在我的系统中 有一个 API 服务器可供 Web 浏览器 命令行界面和桌面应用程序使用 它通过查看用户的身份来验证用户的身份AuthorizationHTTP 标头 目前 浏览器将会话密钥存储在
  • CodeIgniter 和 SimpleTest——如何进行我的第一个测试?

    我习惯使用 LAMP PHP5 MySQL 以及带有 Xdebug 的 NetBeans 进行 Web 开发 现在我想通过学习如何使用 A 正确的测试和 B 框架来改进我的开发 所以我设置了 CodeIgniter SimpleTest 和
  • 使用模拟库在循环中进行用户输入的 Python 测试

    我正在尝试使用模拟库来测试一段代码 在此代码中 用户原始输入在 for 循环中被接受 如下所示 我已经写了测试用例test apple record可以为托盘编号提供单个用户输入值 但是 对于 for 循环中的每次迭代 它只采用与预期相同的