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.