REST APIアプリケーションでユニットテスト実装を開始します。 私はversionist gemを使用します。Railsユニットテスト機能とアンダースコアモジュール
だから、私はこのような名前のクラスがあります:Api::V0_1_0::TestController
class Api::V0_1_0::TestController < Api::V0_1_0::BaseController
def test
respond_with({
:message => "done"
})
end
end
routes.rb
(すべてのルートなしで、ちょうど必要):
MyApp::Application.routes.draw do
# -----------------------------------------------------------------------------------------------------------------------------------------
# ApiVersions
#
scope :module => "api",
:defaults => {:format => "json"} do
# ---------------------------------------------------------------------------------------------------
# V0.1.0
# Default version
#
api_version :module => "V0__1__0",
:header => "X-Version", :value => "0.1.0" do
# Test controller
get "/test" => "test#test"
end
# ---------------------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------
# V0.1.1
# Default version
#
api_version :module => "V0__1__1",
:header => "X-Version", :value => "0.1.1" do
# Test Controller
get "/test" => "test#test"
end
# -----------------------------------------------------------------------------------------------------------------------------------------
# -----------------------------------------------------------------------------------------------------------------------------------------
# ActiveAdmin routes
#
ActiveAdmin.routes(self)
devise_for :admin_users, ActiveAdmin::Devise.config
# -----------------------------------------------------------------------------------------------------------------------------------------
end
機能テストファイル:
class Api::V0_1_0::TestControllerTest < ActionController::TestCase
test "should get test" do
get :test
assert_response :success
end
end
を
rake test:functionals
を起動したとき。
Noルートマッチ: 私はこのエラー有し{:コントローラ=> "API/v0_1_0 /テスト":アクション=> "テスト"}
およびIはrake routes
を起動したとき、私は:V0__1__0
ないV0_1_0
のための二重のアンダースコアで
test GET /test(.:format) {:format=>"json", :controller=>"api/V0__1__0/test", :action=>"test"}
。
この問題の解決方法はわかりません。
編集:私はroutes.rb
を追加しました。
注:このような何かを行うことができ、あなたが提供されたリンクを見てみるとhttps://github.com/bploetz/versionist/issues/9
routes.rbを投稿できますか? – Domness
私の投稿を編集しました –