私はgrape
apiをテストしようとしています。テストに問題があります。ブドウのAPIをテストする。 ActionController :: TestCase @controllerはゼロです
私はレールのデフォルトテストを使用します。これは私のGemfile
テストパートです。
group :development, :test do
gem 'sqlite3'
gem 'byebug' # Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'spring' # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'factory_girl_rails'
gem 'capybara'
gem 'selenium-webdriver'
gem 'capybara-angular'
gem 'poltergeist'
gem 'phantomjs', :require => 'phantomjs/poltergeist', platforms: :ruby # linux
end
マイコントローラ:
# app/controllers/api/v1/vehicules.rb
module API
module V1
class Vehicules < Grape::API
と私のテスト:
1) Error:
API::V1::VehiculesTest#test_GET_/api/v1/vehicules?user_id=123:
RuntimeError: @controller is nil: make sure you set it in your test's setup meth
od.
test/controllers/api/v1/vehicules_test.rb:7:in `block in <class:VehiculesTes
t>'
私はできませんでした:私は、テストを起動すると、私はこのエラーを得た
# test/controllers/api/v1/vehicules_test.rb
require "test_helper"
class API::V1::VehiculesTest < ActionController::TestCase
@controller = API::V1::VehiculesTest.new
test "GET /api/v1/vehicules?user_id=123" do
get("/api/v1/vehicules?user_id=123")
assert_response :success
json_response = JSON.parse(response.body)
assert_not(json_response['principal'], "principal devrait être faux")
end
test "PUT /api/v1/vehicules?user_id=123" do
put("/api/v1/vehicules?user_id=123", { 'princiapl' => true }, :format => "json")
assert_response :success
json_response = JSON.parse(response.body)
assert_not(json_response['principal'], "principal devrait être vrais")
end
end
controller
が見当たらない理由を確認してください。 test_helper.rb
に何かを追加する必要がありますか?
class ActionController::TestCase
end