草庐IT

python - Monkey-patch 用于单元测试的内置函数?

我不想在单元测试中创建真实文件。所以我发现自己经常修补使用无意义的样板文件并为伪文件创建模拟工厂。我想知道如果避免(在这种情况下)这些毫无意义的努力并尝试类似于本地单元测试方法范围内的东西:open=lambdax:StringIO()这样可以吗?或者在这种方法中是否有重大警告/不要发出问题并且会更好与模拟工厂? 最佳答案 这没关系,只要您了解python作用域的工作原理(即本地没问题,全局会导致问题)。您可能还应该考虑到您的monkeypatch将具有与原始版本不同的故障模式,并进行适当的测试以确保您的代码与内置函数正确交互。

python - monkey-patching python 一个实例方法

这个问题在这里已经有了答案:Addingamethodtoanexistingobjectinstance(19个回答)Mockingoutmethodsonanyinstanceofapythonclass(6个答案)关闭7年前。我正在尝试对一个类实例进行猴子修补,但不太明白我如何才能毫无问题地修补一个类方法。>>>classSimple(object):...defmake(self,arg):...returnarg*2...>>>s=Simple()>>>deftimes_four(self,arg):...returnarg*4...>>>Simple.make=times_

python - 扩展类(Monkey Patching)如何在 Python 中工作?

classFoo(object):passfoo=Foo()defbar(self):print'bar'Foo.bar=barfoo.bar()#bar来自JavaScript,如果“类”原型(prototype)增加了某个属性。众所周知,该“类”的所有实例都将在其原型(prototype)链中具有该属性,因此无需对其任何实例或“子类”进行修改。从这个意义上讲,像Python这样基于类的语言如何实现Monkeypatching? 最佳答案 真正的问题是,怎么可能不呢?在Python中,类本身就是一流的对象。类实例的属性访问是通过查

python - 是否有可能在 python3 中完全内置 `str` Monkey Patch

我正在尝试修补python的内置str以跟踪所有str分配的计数。我遇到了一些问题,想知道是否有人能看出我做错了什么,或者这是否可以通过python3中的猴子修补来实现?(以下在python2.7.12中工作正常)$pythonPython3.5.2(default,Nov232017,16:37:01)[GCC5.4.020160609]onlinux我首先天真地尝试修补str就好像它是一个函数:defpatch_str_allocations():old_str=strdefmystr(*args,**kwargs):returnold_str(*args,**kwargs)bui

javascript - 在 Ubuntu 上构建 Mozilla Spider Monkey

我正在尝试在ubuntu10.04(lucid)上构建spidermonkey。但是,当我在js/src目录上运行autoconf2.13时,它告诉我没有configure.in文件。我也不能只做通常的./configure>make>sudomakeinstall。这是怎么回事? 最佳答案 同样的事情发生在这里。我认为他们肯定可以从构建说明更新中受益。这是我必须做的......通过mercurial下载最新的源-运行以下命令然后去喝杯咖啡(如果还没有安装你需要安装Mercurial-repo版本工作正常):hgclonehttp:

python - pymongo + gevent : throw me a banana and just monkey_patch?

这里需要比我现在更多的pymongo领域专业知识:pymongo驱动程序的“正确”部分是用python编写的,我可以调用geventmonkey_patch()并成功地改变pymongo在gevent“异步”greenlets中的r/w阻塞行为吗?如果这需要在gevent和pymongo上做更多的工作——但这​​是可行的——只要我能在irc上获得一些指导,我就非常愿意投入时间。谢谢!注意:在小规模mongo写入不是一个大问题,因为我们只是在解除阻塞之前排队写入“请求”。但是与fiorix谈论他扭曲的异步mongo驱动程序(https://github.com/fiorix/mongo-

ruby-on-rails - Monkey(也许?)在我的 Rails 应用程序中修补一个 Gem

我对术语有100%的把握,这对Rails世界来说仍然相对较新,所以请原谅,如果我对monkeypatch的理解太远,这可能不适用于这种情况。我正在使用一个gem,LongURL,它可以延长缩短的url。默认情况下,gem使用longurl.org,但我们每天通过它推送几十万个url,并认为每个人都在内部提供该服务会更好。我只需要更改2个常量以指向我自己的url。moduleLongURLShortURLMatchRegexp=/http:\/\/[\/\-_.a-z0-9]+/im#UrlsforlongurlEndPoint=URI.parse("http://api.longurl

ruby - Monkey 在有限范围内修补内置的 ruby​​ 类

我正在开发内部RubyDSL,为了让它看起来尽可能漂亮,我需要猴子修补Symbol类并添加一些运算符。我想对我如何做到这一点负责,并希望将补丁的范围和生命周期限制在特定的代码块内。有这样做的标准模式吗?下面是一些伪代码来展示我的想法:classSomeContextdefself.monkey_patch_region(&block)context=SomeContext.newcontext.monkey_patch_Symbolcontext.instance_eval(&block)context.unmonkey_patch_Symbolend#magicalmethoddef

monkey工具的环境搭建、使用、结果查看和分析(APP测试)

一、环境搭建1、安装JDK到官网下载合适自己的版本,为了统一和防止其他出错,可以询问开发人员用的是什么版本,可以统一一下测试与开发的环境。下载地址为:https://www.oracle.com/java/technologies/downloads/我下载的版本是:1.8,安装完jdk,配置环境变量(网上很多教程),通过命令:java-version,如下图这jdk安装成功2、安装AndroidSDK到官网下载合适自己的版本,为了统一和防止其他出错,可以询问开发人员用的是什么版本,可以统一一下测试与开发的环境。下载地址为:http://tools.android-studio.org/ind

monkey工具的环境搭建、使用、结果查看和分析(APP测试)

一、环境搭建1、安装JDK到官网下载合适自己的版本,为了统一和防止其他出错,可以询问开发人员用的是什么版本,可以统一一下测试与开发的环境。下载地址为:https://www.oracle.com/java/technologies/downloads/我下载的版本是:1.8,安装完jdk,配置环境变量(网上很多教程),通过命令:java-version,如下图这jdk安装成功2、安装AndroidSDK到官网下载合适自己的版本,为了统一和防止其他出错,可以询问开发人员用的是什么版本,可以统一一下测试与开发的环境。下载地址为:http://tools.android-studio.org/ind