西脇.rb・東灘.rb もくもく会 6月8日

西脇.rb・東灘.rb 合同もくもく会

fuchiwaki

turnipをやってみよう

  • 触った感じはどうかな?
  • cucumberからの移行は楽かな?
  • 新機能あるのかな?

turnipとは

Rspec向けのGherikin 拡張ライブラリです。

基本的にはRpsec内でcucumber featureが記述出来ます。

(Readme 直訳 Google先生ありがとう)

  • 福井さんが”るびま”書いてました

エンドツーエンドテストの自動化は Cucumber から Turnip へ

  • github

https://github.com/jnicklas/turnip

やったこと

  • サインイン/サインアウトのcucumber featureをturnipで書き換えてみる
  • rails_apps_comporserを使ってみました
  • 詳細は伊藤さんのを参照お願いします!

turnipのセットアップ

  • gemfileについか
group :test do
  gem "turnip"
end
  • spec/featrues 作成
  • spec/steps 作成

turnipのセットアップ

  • .rspecに以下を追加
 -r turnip/rspec
  • spec_helperに以下を追加
require 'turnip'
require 'turnip/capybara'

Dir[Rails.root.join("spec/**/*steps.rb")].each {|f| load f, true}

実行

  • rspec spec/features/sign_in.feature

出力

Pending:
  Sign in User is not signed up I do not exist as a user -> I sign in with valid credentials -> I see an invalid login message -> I should be signed out
    # No such step: 'I do not exist as a user'
    # ./spec/features/sign_in.feature:68

Finished in 0.08193 seconds
1 example, 0 failures, 1 pending

Randomized with seed 29035

D E M O

# cucumber version
cucumber features/users/sign_in.feature

# turnip version
rspec spec/features/sign_in.feature -fd
  • ブラウザでもできた

改善したい/してほしい

  • エラーメッセージが分かりづらいっす
  • stepのサンプルが出力されてほしいな
  • 行指定で特定シナリオを実行させて

感想

  • コマンドが1つ(rspec)に統一されていい
  • specフォルダ内で完結できるのでいい
  • 正規表現じゃなくなっただけでもいい
  • stepって定義するだけでいい
  • cucumberからの移行が簡単でいい

ありがとうございました!

* https://github.com/redfit/turnip_sample.git