I have some problems while testing my Rails aplication.
I have the simple following file to test a controller (relying on http://guides.rubyonrails.org/testing.html):
require "./test/test_helper"
class GraphControllerTest < ActionDispatch::IntegrationTest
setup do
@instance = Instance.where(client_id: 2).first
end
test "should_create" do
assert_difference('Graph.count') do
post v2_instance_graphs_url(instance_id: @instance.client_id), {'name': "test of test", 'instance_id': @instance.client_id}.to_json, {'Authorization': 'Token token=blabla', 'Content-Type': 'application/json'}
end
assert_equal JSON.parse(@response.body)["name"], "test of test"
end
end
With a test_helper.rb which is:
ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
class ActiveSupport::TestCase
# Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
#
# Note: You'll currently still have to declare fixtures explicitly in integration tests
# -- they do not yet inherit this setting
fixtures :all
# Add more helper methods to be used by all tests here...
end
I run in console:
bin/rake test test/controllers/knowledge_graph_controller_test.rb
which should trigger only the two assertions above. However, and I get the two assertions above AND 8 errors.
the errors are the following:
1) Error:
ActiveSupport::TestCase#test_app=:
ArgumentError: wrong number of arguments (given 0, expected 1)
2) Error:
ActionController::TestCase#test_app=:
ArgumentError: wrong number of arguments (given 0, expected 1)
3) Error:
Minitest::Test#test_app=:
ArgumentError: wrong number of arguments (given 0, expected 1)
4) Error:
GraphControllerTest#test_app=:
ArgumentError: wrong number of arguments (given 0, expected 1)
5) Error:
ActionDispatch::IntegrationTest#test_app=:
ArgumentError: wrong number of arguments (given 0, expected 1)
6) Error:
Minitest::Unit::TestCase#test_app=:
ArgumentError: wrong number of arguments (given 0, expected 1)
7) Error:
Rails::Generators::TestCase#test_app:
RuntimeError: You need to configure your Rails::Generators::TestCase destination root.
8) Error:
Rails::Generators::TestCase#test_app=:
RuntimeError: You need to configure your Rails::Generators::TestCase destination root.
which I cannot explain. I don't even understand what file they come from.
I am using Rails 4.2.7.1
Thank you very much for your help!
The problem was an "include ActionDispatch" in another file.