标签: ruby-mocha

无法加载此类文件——mocha/object (LoadError)

当我运行 rspec 进行测试时,出现以下错误:

无法加载此类文件 -- mocha/object (LoadError) 问题出在config.mock_with :mocha以下行:

这是我的spec_helper.rb:

require 'rubygems'
require 'spork'

Spork.prefork do
  # Loading more in this block will cause your tests to run faster. However, 
  # if you change any configuration or code from libraries loaded here, you'll
  # need to restart spork for it take effect.
  ENV["RAILS_ENV"] ||= 'test'
  require File.expand_path("../../config/environment", __FILE__)
  require 'rspec/rails'
  require 'rspec/autorun'
  require 'capybara/rails'
  require 'capybara/rspec'
  #require 'spork/ext/ruby-debug'
  # Requires supporting ruby files with custom matchers and macros, …
Run Code Online (Sandbox Code Playgroud)

rspec spork rspec2 ruby-on-rails-3.2 ruby-mocha

3
推荐指数
1
解决办法
9024
查看次数

如何使用 Mocha 在控制器内存根模块方法

我有一个像这样的 Sinatra 应用程序:

my_module.rb

module MyModule
  def my_method
    "yay"
  end
end
Run Code Online (Sandbox Code Playgroud)

应用程序.rb

get "/my_module" do 
  puts my_method
end
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用和my_method进行测试。Minitestmocha

def test_my_method
  MyModule.stubs(:my_method).returns("stubbed")
  get "/my_module"
end
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用,因为原始方法仍然被调用。关于如何做到这一点有什么想法吗?谢谢!

ruby module stub sinatra ruby-mocha

3
推荐指数
1
解决办法
2043
查看次数

如何在实例变量上存根方法?

所以我有这个简单的 ruby​​ 类:

class GetRequestList
  def initialize(current_user, filter_hash)
    @authorizer = RequestAuthorizer.new(current_user)
    @filter    = RequestFilter.new(filter_hash)
  end
  def generate
    Request.send_chain(@authorizer.method_chain)
           .send_chain(@filter.method_chain)
  end
end
Run Code Online (Sandbox Code Playgroud)

并且我想测试在隔离和实现中Request接收两种send_chain方法。为此,我正在尝试使用一些存根:RequestAuthorizerRequestFilter

require 'test_helper'

class GetRequestListTest < ActiveSupport::TestCase

  test "request should be filtered by filter and role" do
    Request.expects(:send_chain).twice.returns([build(:request)])
    RequestFilter.stubs(:new)
    RequestFilter.any_instance.stubs(:method_chain).returns([])
    RequestAuthorizer.stubs(:new)
    RequestAuthorizer.any_instance.stubs(:method_chain).returns([])
    assert GetRequestList.new(:current_user, :filter).generate.size == 1
  end
end
Run Code Online (Sandbox Code Playgroud)

你看有什么问题。stubs(:new)返回nil并且在RequestAuthorizerRequestFilter的实例变量中没有实例,GetRequestList我们得到一个错误。我不知道如何在实例变量上存根方法。有什么建议?

ruby ruby-mocha

2
推荐指数
1
解决办法
5129
查看次数

如何从 Rake 中的系统命令打印到标准输出?

我有以下 Rakefile

desc "Runs tests"
namespace :test do
    task :api do
        `mocha`
    end
end
Run Code Online (Sandbox Code Playgroud)

当我运行命令时rake test:api,如果我只运行命令,我不会得到很好的点输出mocha

如何在 rake 任务中实时打印命令的输出?

ruby rake ruby-mocha

1
推荐指数
1
解决办法
5187
查看次数

Ruby Mocha 希望第一个参数是一个符号

我试图断言方法调用发生在第一个参数是一个符号的情况下,如下所示:

Foo.bar(:some_key, {})

现阶段我真的不在乎第二个论点是什么。

我试过了:

Foo.expects(:bar).with(includes(:some_key))

以及在此处的文档中找到的其他变体。当我期望使用任何参数调用方法时,测试就会通过。

有任何想法吗?

ruby testing ruby-mocha

1
推荐指数
1
解决办法
443
查看次数

标签 统计

ruby-mocha ×5

ruby ×4

module ×1

rake ×1

rspec ×1

rspec2 ×1

ruby-on-rails-3.2 ×1

sinatra ×1

spork ×1

stub ×1

testing ×1