使用摩卡,我試圖嘲笑調用模塊方法的控制器方法。 這是一個集成測試。NoMethodError:未定義方法`存根'爲ModuleX:模塊
例子:
class Controller < ApplicationController
def method1
response = Module1.method2(...
我到此爲止:
- 新增摩卡到Gemfile中
- 新增
require 'mocha/mini_test'
我 test_helper.rb中的最底部 嘗試這種代碼在發送郵件給我的控制器之前進行集成測試:
Module1.stub(:method2).returns(:true) post "controller/method1"
而得到這個錯誤:
NoMethodError: undefined method 'stub' for Module1:Module
是否有可能存根方法2?
編輯:所以主要的修復方法是'存根'而不是'存根'。儘管如此,我仍然無法嘲笑這個dang模塊。
編輯:Rails和MiniTest即使在我將它存根後調用模塊方法。 Rails是否可能覆蓋我的存根?
class Test < ActionDispatch::IntegrationTest
test "test do
Module1.stubs(:method2).returns(:true)
post "controller/method1"
此測試導致method2內部錯誤未傳入參數。測試表現爲好像該方法未被樁住。
所以,您的建議已解決我的第一個問題;不過,我仍然無法嘲笑這種方法。 Rails和MiniTest甚至在我將它存根後調用模塊方法。 Rails是否可能覆蓋我的存根? –