模拟 raw_input python

2024-01-10

我有这个函数应该接收列表 [x,y]

def input_origem():
    origem = raw_input("Entre com o valor de x: ")
    origem = eval(origem)
    return origem
def input_saida():
    destino = raw_input("Entre com o valor de y  ")
    destino = eval(destino)
    return destino


def my func(origem, destino):

..
...
code 
..
...

print  myfunc(input_origem(), input_saida())

这段代码运行良好,但我不知道如何模拟这个函数。

我尝试了这样的方法:

class TEste(base.TestCase):
    @base.TestCase.mock.patch('mypath.input_origem')
    @base.TestCase.mock.patch('mypath.input_saida')
    def test_movimento_cavalo(self, origem_mock, saida_mock):
        origem_mock = self.mock.MagicMock()
        saida_mock = self.mock.MagickMock()
        myfunc(origem_mock, saida_mock)
        myfunc.should.be.equal([1,1])

但测试永远不会完成。当我取消时,我得到:

origem = raw_input("输入 x 的值:") 键盘中断


你应该能够嘲笑__builtin__.raw_input使用您通常用来模拟事物的任何设施。

一个非常简单的例子使用unittest and mock看起来像这样:

import unittest
import mock
import __builtin__

def test_raw_input():
    return raw_input()

class Test(unittest.TestCase):
    @mock.patch.object(__builtin__, 'raw_input')
    def test_stuff(self, mock_raw_input):
        mock_raw_input.return_value = 7
        self.assertEqual(test_raw_input(), 7)

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

模拟 raw_input python 的相关文章

随机推荐

  • Kotlin:安全的 lambda(无内存泄漏)?

    读完后这篇关于内存泄漏的文章 https medium com freenet engineering memory leaks in android identify treat and avoid d0b1233acc8 yet4778
  • “如果不是 _____ 就什么都不是”以及它检查的内容

    VB 中的这条语句是检查对象是否存在 还是检查内容是否为空 我认为它正在检查内容是否为空 但我想仔细检查一下 提前致谢 VBA 中 null 的概念 即NullReferenceException null 如果您熟悉 C 或者NullPo
  • 流星当前活跃用户?

    我正在流星中制作一个简单的聊天室 我如何获取当前活跃用户的列表 有没有办法真正获取当前连接 客户端的列表 我昨天浏览了流星源 看看是否已经有类似的东西了 我找不到连接的标志或任何东西 我想你会有两种选择 在客户端和服务器中为每个连接的用户实
  • 以编程方式更新 MS Word 中 excel 对象的链接命名范围 (2007)

    第一个问题 请问这个问题是否已经解决 但我已经彻底搜索并找不到答案 我已将几个命名范围链接到一个 Word 文档中 此 Word 文档 以及带有命名范围的相关 Excel 工作簿 是一个模板 它供同事制作这些模板 Word 文档和 Exce
  • 在python中添加年份

    如果我想在程序中添加 100 年 为什么它显示错误的日期 import datetime stringDate January 10 1920 dateObject datetime datetime strptime stringDate
  • 正则表达式仅匹配前面有空格或没有任何内容的特定字符(行首)

    考虑以下推文 RT username This is my tweet Check this RT username This is my tweet I have PART 2 downloaded In a preg replace 调
  • 将 Postgresql 数组直接读入 Golang Slice

    我有一个查询返回一行 其中有一列包含字符串数组 character varying http wp me p62MJv Jc http tyrant click 1LGBoD6 有没有简单的方法可以将其直接读入 Golang 切片中 例如
  • 在我的项目中使用 jar 时出错

    我使用 Java 1 8 来创建我的 jar 我在Java项目中可以使用它 但是在Android项目中 出现以下错误 Error Error converting bytecode to dex Cause Dex cannot parse
  • 显式复制构造函数和 std::sort

    当对具有显式复制构造函数的对象容器进行排序时 我收到我不理解的编译器错误 来自 g 4 8 2 和 clang 3 4 均处于 std c 11 模式 我创建了一个简单的示例来演示该问题 class A public explicit A
  • 如何在sql中将分钟拆分为天、小时和分钟

    我有一个由分钟组成的专栏 有没有什么简单的方法可以将分钟列拆分为仅显示天 小时 分钟的一列 DURATION 67 gt 1 hour 7 minutes 1507 gt 1 day 1 hour 7 minutes 23 gt 23 mi
  • Open Shift Kafka 实例中默认不创建 Topic

    我正在使用下面的 Camel Route 向 Kafka 实例生成消息 但该主题不存在于实例中 当 Kafka 实例中不存在主题时 如何创建主题 Component public class kafkaConfig extends Rout
  • 如何通知视图模型的所有属性已更改

    在MVVM模式中 如何通知视图模型的所有属性发生了变化 我不想调用所有属性的所有notifypropertychanged 事件 我有一个实体类 在视图模型中 我将实体的所有公共字段编写为公共属性 我想重新绑定新实体并只编写一行代码来通知所
  • 什么 API 可以使用 Java 将复选框添加到 MS Word 文件?

    我想编写一个程序来创建 MS Word 文件 但某些 API 无法向文档添加复选框 有人这样做过吗 谢谢 open office的api怎么样 http api openoffice org docs common ref com sun
  • 编译时与运行时错误[重复]

    这个问题在这里已经有答案了 可能的重复 运行时与编译时 https stackoverflow com questions 846103 runtime vs compile time 我如何知道 Java 中的特定代码行是否可能引发编译时
  • Spark 分区:从单节点集群上的本地文件系统加载文件

    我有兴趣了解 Spark 在从本地文件系统加载文件时如何创建分区 我正在使用 Databricks 社区版来学习 Spark 当我使用 sc textfile 命令加载一个大小只有几千字节 大约 300 kb 的文件时 spark 默认情况
  • jquery 使用内联 javascript 加载

    我正在使用 jquery load 获取不同页面上的 div 并将其插入到我的页面中 像这样的东西 mydiv load Pages grid2 aspx otherpagediv 在另一个页面的div中 div中有javascript j
  • Intent.setAction()和intent.getAction()在BroadcastReceiver中不起作用

    我正在使用 BroadCastReceiver 来允许用户执行离线事件 问题是它永远不会进入内部intent getAction equals beenthereclicked 如果我尝试在点击beenThereView后几秒钟打开wifi
  • 从VBA中的日期中减去?

    我在 Excel VBA 中对日期进行操作时遇到很大问题 我有一个带有文本框的表单 用户将在其中输入日期 问题是他可能会以不同的格式输入 例如 1 08 2011 表示 8 月 1 日 或 8 1 11 表示同一天 现在我想做的是从他在文本
  • 如果用户从不点击警报,如何处理超时错误?

    我有一个 Google Sheets 插件 它使用 App Script Ui 服务提供的对话框 即SpreadSheetApp getUi alert 这通常工作正常 除非用户在 5 分钟内没有选择选项或关闭警报 假设他们切换到不同的选项
  • 模拟 raw_input python

    我有这个函数应该接收列表 x y def input origem origem raw input Entre com o valor de x origem eval origem return origem def input sai