monkeypatching

    1熱度

    2回答

    開發人員最近問我們的測試是否可以在每次打開頁面時執行一些javascript。有關更多詳細信息,請參閱bug 44299。 執行JavaScript很簡單: browser.execute_script('return mw.loader.getModuleNames().filter(function (module) { return mw.loader.getState(module) ==

    1熱度

    1回答

    我有一個情況如下圖所示: Module Task def get(a) fetch(a) end def fetch(a) query(a) end def query(a) puts a end end 只有get方法是從模塊的外部調用的像 Task.get('name') 我想猴補丁唯

    1熱度

    2回答

    我的模型中有一個@memoize裝飾器,它可以緩存模型本身的一些細節,以避免多次調用多個數據庫調用時(特別是在模板中)。但是,由於我存儲了對象並在測試中引用它們,所以這會使事情失敗。 例如,如果我做mygroup.subscribers,添加一個訂戶並再次嘗試它,它將返回不正確的訂戶數,因爲它已被記憶。 我怎樣才能讓修飾器在我的tests.py中無所作爲?我還沒有找到一種乾淨利落的方法,因爲模型首

    1熱度

    1回答

    我怎樣才能創建一個包裝能產生到使用$1變量塊的方法的別名方法在塊變量? 更具體地說,我想猴補丁String#sub(是的,我知道這是不是一個好的做法)來修改傳遞給它的正則表達式在使用之前。 我試過下面的代碼沒有成功。 class String alias :sub_orig :sub def sub(*args, &block) # do stuff with ar

    2熱度

    2回答

    我想覆蓋的方法這樣可枚舉模塊: ​​ (注意,這是一個簡單的例子)。 理論上,當我撥打collect或map時,Ruby應該使用我的重寫版本,對不對?但事實並非如此。它始終使用內置的Enumerable方法。是否因爲collect實際上是enum_collect並且符合來源? [1,2,3].map(&:to_s) # never prints anything 是的,我知道,猴子,修補是壞的

    0熱度

    1回答

    我想猴子補丁rspec-rails生成器來生成_form.html_spec.rb模板。我知道那是怎麼做到的,但不是我應該放這個補丁的地方! 我做了什麼: # rspec_generator_patch.rb module Rspec module Generators class ScaffoldGenerator < Base def generate_vie

    9熱度

    3回答

    我需要monkeypatch請求的響應類(版本1.0.4,當前爲這個問題),以添加其他方法。 我有這樣的代碼: import requests class Response(requests.models.Response): def hmm(self): return 'ok' requests.models.Response = Response r = re

    1熱度

    1回答

    關於this question,我試圖覆蓋ActiveRecord::ConnectionAdapters::PostgreSQLAdapter定義的postgresql_version方法返回PostgreSQL的版本: module ActiveRecord module ConnectionAdapters class PostgreSQLAdapter < Abstra

    2熱度

    1回答

    我正在嘗試使用Selenium爲我的應用程序的前端行爲編寫測試。但是,我試圖測試的頁面從Solr獲取它們的數據,我不想旋轉Solr實例來運行測試。 我正在使用py.test和py.test-django我的測試,我試圖monkeypatch視圖,以便對Selenium瀏覽器發送的數據進行斷言。 例如,這是我所期望的失敗測試: def test_search(self, live_server, b

    1熱度

    1回答

    我已經安裝了摩卡全球,並用它來運行一些測試: $> mocha test.js 在test.js文件的根我想猴子補丁摩卡: require('mocha').Runner.prototype.runTests = function() {...} 但需要(「摩卡」 )失敗,因爲mocha不在node_modules中,而是全局安裝。 如果我在我的項目中本地安裝mocha,然後require