当文書はRails + Rspec + Capybara環境を想定しています。 他のアプリ/テストフレームワークを利用したい場合は公式のREADMEを参照願います。 概要 Capybara =UIテストのためのrubyフレームワーク オープンソース / MITライセンス ページの表示、フォームの入力、ボタンのクリック等のUI操作をテストコード上で実行できる 複数のテストフレームワークから利用できる MiniTest, RSpec, Cucumberなど 複数の ドライバ (テスト環境, ヘッドレスブラウザ)を選択して利用できる Rack::Test, Selenium, Webkitなど 導入 インストール gemをインストールする。Railsの場合、バージョンによってはデフォルトでGemfileに追加されている。

Introducing Capybara 2.1 — Elabs を読んでのメモです。 capybara 2.1 を 2.0 と同じ挙動にする capybara 2.1 を 2.0 と同じ挙動にするには下記のように設定する Capybara.configure do |config| config.match = :one config.exact_options = true config.ignore_hidden_elements = true config.visible_text_only = true end capybara 1.x から 2.1 にアップグレードする 1.x から 2 系に上げると、互換性がない変更があって大変だけど、下記の設定をしておけばあとは簡単(らしい)。 Capybara.configure do |config| config.match = :p
はじめに みなさんこんにちは! この記事は「必要最小限の努力で最大限実戦で使える知識を提供するRSpec入門記事」、略して「使えるRSpec入門」の第4回です。 今回はCapybaraを使ったフィーチャスペックについて説明します。 ただし、今までの記事とは異なり、フィーチャスペックのイロハよりも「Capybaraの使い方」に重点を置きます。 なぜなら、僕個人の経験からいって、フィーチャスペックで困るのは「このブラウザの操作って、どうやってコードで表現するの??」というケースが大半だからです。 それ以外は第1回~第3回の内容をそのまま応用できるので、特に「フィーチャスペックだから困る」ということはないと思います。 今回は説明する主な項目は以下の通りです。 フィーチャスペックの基本 ページの移動や画面のクリック、フォームの操作など 画面やフォームの検証 画面の操作や検証の応用テクニック その他

ユーザーエージェントの切り替えPCスマホで処理を切り替えるなど、ユーザーエージェントを参照して処理を行うactionをテストする場合には、次のようにユーザーエージェントを設定することでテストできます。 RSpec.describe HogeController, type: :controller do describe "GET #index" do context 'iPhoneの場合' doit "returns http success" do request.env["HTTP_USER_AGENT"] = 'Mozilla/5.0 (iPhone;CPUiPhone OS 7_0 likeMac OS X; en-us)AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/

はじめに やりたいこと:カッコよくグリーンを出したい! 「テストは大事!」とは言うものの、どんなRSpecを書いたらいいのかわからない...。 そんな状況が、Railsのお仕事に本格的に関わるようになってから、続いておりました。 そもそも自動テストには憧れがありますし、specを実行して、ターミナルに緑の文字を出したいのはやまやまです。でも、何を書けばいいのかわからない。 そんな時の、とりあえずの取りかかりの例を載せてみます。 ※ この記事の例について: 下記の例は、実際はテストとして無理に書く必要はないものだったりします。 自明なものを書きすぎると、たとえば全てのテストを通すのにも非常に時間がかかってしまいますので、このあたりは、rspecを動かす場合の確認用、1例として見ていただけると幸いです。 ※ これからRspecを始めたい方 / 初心者の方へ (20180523 追記) @jnc

describe Order do before do order.add_entry(LineItem.new(:item =>Item.new( :price => Money.new(1.11, :USD) ))) end let(order) { Order.new }it "sums the prices ofitslineitems" do order.add_entry(LineItem.new(:item =>Item.new( :price => Money.new(2.22, :USD), :quantity => 2 ))) expect(order.total).to eq(Money.new(5.55, :USD)) end end Rspecはrspec-core, rspec-expectations, rspec-mocksの3つにわかれており、

はじめに RSpecは難しい、よくわからない、といったコメントをときどき見かけます。 確かにちょっと独特な構文を持っていますし、機能も結構多いので「難しそう」と感じてしまう気持ちもわかります。 (構文については僕も最初見たときに「うげっ、なんか気持ちわるっ」と思った記憶がありますw) しかし、RSpecに限らずどんなフレームワークでも同じですが、慣れてしまえばスラスラ書けますし、実際僕自身は「RSpecって便利だな-」と思いながらテストコードを書いています。 そこでこの記事では、僕が考える「最低限ここだけを押さえていれば大丈夫!!」なRSpecの構文や、僕が普段よく使う便利な機能をまとめてみます。 具体的には以下のような構文や機能です。 describe /it / expect の役割 ネストした describe context の使い方 before の使い方 let / let!

1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く