利用Python Mock模拟OJ test case

场景需要

在刷OJ的过程中,最常见的就是从stdin里面读取输入了,然后把结果输出到stdout上供OJ判断结果。

一般来说,在本地写完程序之后都会手动输入一遍test case,观察输出结果之后发现不对劲,再手动输入一遍test case。。。

作为一个搞笑的程序员,啊呸,不是,高效的程序员,简直不能忍受一次又一次地手动输入test case,能不能每次debug完之后一键跑数据呢?而且能不能让自己额外想出来的test case保存下来,每次都跑一遍呢?

由于我现在主要是使用Python刷OJ,因此很自然地想到了通过Python Mock来模拟stdin。

例子

以我最近的刷的PAT 1002 A+B for Polynomials (25) Python为例,要完整的模拟整个OJ测试过程主要从两个方面入手,输入和输出

模拟输入

在Python从console读取输入主要是通过input函数,那么通过一个Mock对象代替掉input函数即可。但是input函数是一个内置函数,怎么Mock呢?

在Python3中,如果要标记内置函数,可以通过builtins包导入;在Python2中,则是通过__builtin__包导入。

Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import builtins
>>> builtins.input
<built-in 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值