8vi*_*ius 2 integration-testing ruby-on-rails path minitest
我正在为会话控制器在Rails中进行一些集成测试,并且在测试中我得到了my login_path的定义,即使它是在routes.rb文件中,当我在控制台中调用该路径时,它也会显示出来。知道是什么原因造成的吗?
route.rb:
Rails.application.routes.draw do
get 'sessions/new'
root 'static_pages#home'
get 'help' => 'static_pages#help'
get 'about' => 'static_pages#about'
get 'contact' => 'static_pages#contact'
get 'signup' => 'users#new'
get 'login' => 'sessions#new'
post 'login' => 'sessions#create'
delete 'logout' => 'sessions#destroy'
resources :users
end
Run Code Online (Sandbox Code Playgroud)
测试:
require 'test_helper'
class UsersLoginTest < ActionDispatch::IntegrationTest
get login_path
assert_template 'sessions/new'
post login_path, session: { email: "", password: "" }
assert_template 'sessions/new'
assert_not flash.empty?
get root_path
assert flash.empty?
end
Run Code Online (Sandbox Code Playgroud)
如果我正确阅读了文档,则应调用“ test”方法,然后将测试代码作为一个块传递。这样的事情应该工作
class UsersLoginTest < ActionDispatch::IntegrationTest
test "user can log in" do
get login_path
assert_template 'sessions/new'
post login_path, session: { email: "", password: "" }
assert_template 'sessions/new'
assert_not flash.empty?
get root_path
assert flash.empty?
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2186 次 |
| 最近记录: |