Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在测试期间将模拟的API对象传递给rails控制器_Api_Ruby On Rails 4_Controller_Tdd_Minitest - Fatal编程技术网

在测试期间将模拟的API对象传递给rails控制器

在测试期间将模拟的API对象传递给rails控制器,api,ruby-on-rails-4,controller,tdd,minitest,Api,Ruby On Rails 4,Controller,Tdd,Minitest,我的问题是关于测试(MiniTest)一个查询API的Rails 4.0控制器。例如,我有一个控制器: class InsolentController def show @result = SomeApi.get value1, value2 end end 现在我想在不调用API的情况下对其进行测试,因此如果我使用ASP.NET MVC,我可以执行以下操作: public Class InsolentController { private

我的问题是关于测试(MiniTest)一个查询API的Rails 4.0控制器。例如,我有一个控制器:

class InsolentController

    def show 

        @result = SomeApi.get value1, value2

    end

end
现在我想在不调用API的情况下对其进行测试,因此如果我使用ASP.NET MVC,我可以执行以下操作:

public Class InsolentController
{
    private SomeAPI someApi;

    public InsolentController(SomeAPI api = null)
    {

        this.someApi = api ?? new SomeAPI();
    }

    public ActionResult Show()
    {
        var result = this.someApi.Get(value1, value2);

        // return, etc...
    }
}
我这样做是为了模仿SomeAPI。那么,当我想在rails中使用MiniTest时,我该如何做呢,例如:

require 'test_helper'

class InsolentControllerTest < ActionController::TestCase

    test "should get show" do

        get :show, { value1: 10, value2: 34 }

        assert_response :success
    end

end
需要“测试助手”
类IslandControllerTest
我最终使用minitest并设置了它

您应该能够轻松地执行以下操作:

require 'test_helper'

class InsolentControllerTest < ActionController::TestCase

  test "should get show" do
    value1 = 10
    value2 = 34
    expect(SomeApi).to receive(:get).with(value1, value2)

    get :show, { value1: value1, value2: value2 }
    assert_response :success
  end
end
需要“测试助手”
类IslandControllerTest
我遇到了一个类似的问题,你有没有想过?嗨,汤姆,没有。无论如何,我只是在玩弄Rails框架,所以这不是什么大不了的事,但也许它会帮助一些人。很好,你根据你的答案找到了答案。