Niedawno przeniesiono do Rails 4 i otrzymałem błędy, których wcześniej nie otrzymywałem. Próbuję przetestować formularz, który robię przy użyciu Capybara/Rspec.Uzyskiwanie ActionController :: UnknownFormat, testowanie rspec podczas tworzenia nowego obiektu
Kiedy klikam przycisk na formularzu, błąd pojawia się:
Failure/Error: find(".submit.button").click
ActionController::UnknownFormat:
ActionController::UnknownFormat
# ./app/controllers/office_listings_controller.rb:32:in `create'
# ./spec/features/office_listings_spec.rb:78:in `block (3 levels) in <top (required)>'
Wskazuje to na moim kontroler, który wygląda tak:
def create
selected_amenities = params[:amenities] || [] # empty list if no amenities checked
@office_listing = OfficeListing.new(params[:office_listing])
@office_listing.broker = current_broker
p current_broker
@office_listing.neighborhood = Neighborhood.find(params[:neighborhood_id])
p @office_listing.neighborhood
if @office_listing && @office_listing.save!
@path = city_neighborhood_office_listing_path(@office_listing, :city_id => @office_listing.neighborhood.city.id, :neighborhood_id => @office_listing.neighborhood.id)
create_amenities(@office_listing, selected_amenities)
respond_to do |format|
format.js
end
else
@failure = "Unable to create office :-("
respond_to do |format|
format.js
end
end
end
i nie lubi formatu .js line mimo że mam plik create.js.erb, który jest renderowany, gdy faktycznie uruchomię stronę.
Nie rozumiem, dlaczego strona faktycznie działa, ale mój test się nie udaje.
Wszelkie przemyślenia będą mile widziane!
Twój test prawdopodobnie uruchamia akcję tworzenia w formacie html, podczas gdy kontroler działa tylko w formacie js. – rmagnum2002