heavens_doorを使ってみた
はじめに
Rails/Rubyのコミッターであるa_matsudaさんが制作されているheavens_doorのチュートリアル記事です
実際のデモ
実際にはこんな感じで動作します
なお、実際に作ったものはこちら
チュートリアル
rails new
まずは、rails new
でheavens_door
を試すサンプルアプリを作ります
rails new heavens_door
capybaraの導入
次に、capybara
を導入します
gem 'capybara', '>= 2.15', group: :development
そのあと、bundle install
を実行します
bundle install
テスト用CRUD作成
テストするためのCRUDを作成します
rails g scaffold post title content
その後、rails db:migrate
を実行します
rails db:migrate RAILS_ENV=test
heavens_doorの導入
heavens_door
を導入したいと思います!
Gemfile
にheavens_door
を追加します
gem 'heavens_door', group: :development
bundle install
でgem
をインストールします
bundle install
heavens_doorを使う
最後に、heavens_door
を使ってみましょう!
まず、test/intgration/posts_test.rb
を作成し、以下のようにします
require 'capybara/rails'
require 'capybara/minitest'
class ActionDispatch::IntegrationTest
include Capybara::DSL
include Capybara::Minitest::Assertions
def heavens_door
end
end
その後、rails s
でローカルサーバを起動し、localhost:3000/posts
にアクセスします
rails s
あとは画面右上に表示されているボタンをクリックするとUI操作の記録がはじまります
適当に操作したあと、バインダーマークをクリックするとUIテストのコードがクリップされます
あとは、test/intgration/posts_test.rb
にクリップしたコードを貼り付けます
require 'capybara/rails'
require 'capybara/minitest'
class ActionDispatch::IntegrationTest
# Make the Capybara DSL available in all integration tests
include Capybara::DSL
# Make `assert_*` methods behave like Minitest assertions
include Capybara::Minitest::Assertions
# Reset sessions and driver between tests
# Use super wherever this method is redefined in your individual test classes
def heavens_door
scenario 'GENERATED' do
visit '/posts'
click_link 'New Post'
fill_in 'Title', with: 'test'
fill_in 'Content', with: 'aaaaaaaaaaaaaaaaaaaaaaaaa'
click_button 'Create Post'
click_link 'Back'
end
end
end
最後に、rails test
を実行してください
rails test
テストが実行されていればOKです!
参考
Author And Source
この問題について(heavens_doorを使ってみた), 我々は、より多くの情報をここで見つけました https://qiita.com/S_H_/items/8901666e50bd69d4202c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .