All Integration Tests Fail When They Shouldn't

Whenever I run the integration tests I find that if one test fails
they all fail. This occurs even if one or more of the tests should
succeed. Tried various solutions like clearing out the cache, checking
to see if the tests are written correctly, double checking the routes
used for testing, but it does not resolve the issue. Below are the
contents of site_navigation_test.rb:

===============================================================
require ‘test_helper’

class SiteNavigationTest < ActionDispatch::IntegrationTest
BaseUrl = ‘http://localhost:3000

def setup()
Rails.cache.clear()
end

test ‘can visit Home page’ do
result = false

setup()
begin
  result = get("#{BaseUrl}")
rescue
  # Do nothing.
end
assert(result)

end

test ‘can visit About page’ do
result = false

setup()
begin
  result = get("#{BaseUrl}/about")
rescue
  # Do nothing.
end
assert(result)

end

test ‘about path exists’ do
result = false

setup()
begin
  result = get(about_path())
rescue
  # Do nothing.
end
assert(result)

end

test ‘can visit Projects page’ do
result = false

setup()
begin
  result = get("#{BaseUrl}/projects")
rescue
  # Do nothing.
end
assert(result)

end

test ‘projects path exists’ do
result = false

setup()
begin
  result = get(projects_path())
rescue
  # Do nothing.
end
assert(result)

end

test ‘can visit Contact page’ do
result = false

setup()
begin
  result = get("#{BaseUrl}/contact")
rescue
  # Do nothing.
end
assert(result)

end

test ‘contact path exists’ do
result = false

setup()
begin
  result = get(contact_path())
rescue
  # Do nothing.
end
assert(result)

end

test ‘can visit Feedback page’ do
result = false

setup()
begin
  result = get("#{BaseUrl}/feedback")
rescue
  # Do nothing.
end
assert(result)

end

test ‘feedback path exists’ do
result = false

setup()
begin
  result = get(feedback_path())
rescue
  # Do nothing.
end
assert(result)

end
end

===============================================================

Below are the contents of routes.rb:

===============================================================
EAAWebsite::Application.routes.draw do
root to: ‘Pages#home’
match ‘/about’ => ‘Pages#about’
match ‘/projects’ => ‘Pages#projects’
match ‘/contact’ => ‘Pages#contact’
#match ‘/feedback’ => ‘Feedback#index’

The priority is based upon order of creation:

first created → highest priority.

Sample of regular route:

match ‘products/:id’ => ‘catalog#view’

Keep in mind you can assign values other than :controller

and :action

Sample of named route:

match ‘products/:id/purchase’ => ‘catalog#purchase’, :as

=> :purchase

This route can be invoked with purchase_url(:id => product.id)

Sample resource route (maps HTTP verbs to controller actions

automatically):

resources :products

Sample resource route with options:

resources :products do

member do

get ‘short’

post ‘toggle’

end

collection do

get ‘sold’

end

end

Sample resource route with sub-resources:

resources :products do

resources :comments, :sales

resource :seller

end

Sample resource route with more complex sub-resources

resources :products do

resources :comments

resources :sales do

get ‘recent’, :on => :collection

end

end

Sample resource route within a namespace:

namespace :admin do

# Directs /admin/products/* to Admin::ProductsController

# (app/controllers/admin/products_controller.rb)

resources :products

end

You can have the root of your site routed with “root”

just remember to delete public/index.html.

root :to => ‘welcome#index’

See how all your routes lay out with “rake routes”

This is a legacy wild controller route that’s not recommended for

RESTful applications.

Note: This route will make all actions in every controller

accessible via GET requests.

match ‘:controller(/:action(/:id))(.:format)’

end

Did you migrate in test environment?

Dheeraj K.