Alv*_*nti 1 ruby-on-rails functional-testing minitest
我正在尝试测试我的控制器.在我试图测试update动作之前,一切都很好.
这是我的测试
require 'test_helper'
class BooksControllerTest < ActionController::TestCase
test "should not update a book without any parameter" do
assert_raises ActionController::ParameterMissing do
put :update, nil, session_dummy
end
end
end
Run Code Online (Sandbox Code Playgroud)
这是我的控制器
class BooksController < ApplicationController
(...)
def update
params = book_params
@book = Book.find(params[:id])
if @book.update(params)
redirect_to @book
else
render 'edit'
end
end
(...)
def book_params
params.require(:book).permit(:url, :title, :price_initial, :price_current, :isbn, :bought, :read, :author, :user_id)
end
end
Run Code Online (Sandbox Code Playgroud)
我的应用程序的书籍控制器的路线如下:
books GET /books(.:format) books#index
POST /books(.:format) books#create
new_book GET /books/new(.:format) books#new
edit_book GET /books/:id/edit(.:format) books#edit
book GET /books/:id(.:format) books#show
PATCH /books/:id(.:format) books#update
PUT /books/:id(.:format) books#update
DELETE /books/:id(.:format) books#destroy
Run Code Online (Sandbox Code Playgroud)
当我跑步时,rake test我得到:
1) Failure:
BooksControllerTest#test_should_not_update_a_book_without_any_parameter [/Users/acavalca/Sites/book-list/test/controllers/books_controller_test.rb:69]:
[ActionController::ParameterMissing] exception expected, not
Class: <ActionController::UrlGenerationError>
Message: <"No route matches {:action=>\"update\", :controller=>\"books\"}">
---Backtrace---
test/controllers/books_controller_test.rb:70:in `block (2 levels) in <class:BooksControllerTest>'
test/controllers/books_controller_test.rb:69:in `block in <class:BooksControllerTest>'
---------------
Run Code Online (Sandbox Code Playgroud)
那么,我在这里错过了什么?我已经对此进行了搜索,但找不到任何东西.只有少数RSpec示例,看起来与我所做的非常相似,但我仍然没有任何线索.
您至少需要向其发送一个ID Book.请注意,路由如下所示:
PUT /books/:id(.:format) books#update
Run Code Online (Sandbox Code Playgroud)
该:id部分是URL的组成部分.这意味着,试图做一个PUT以/books/没有意义,但这样做一个/books/1是一个有效的URL,即使ID 1不匹配数据库中的任何记录.
您必须至少发送一个参数:id才能使此测试工作.
| 归档时间: |
|
| 查看次数: |
1211 次 |
| 最近记录: |