Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

タイトル長い。すまぬ。PHPerとして約10年近く。Ruby自体は案件によってちょこっとだけ触ったことがある程度。Rails自体を本格的にさわるのは今回が初めて。PHPだとCakePHPを中心にZend/Symfonyなどいくつか。そんな僕が今回、Rails4デビューをして、WebAPIを作り、RSpecでテスト駆動開発風味で、GitHubプルリクベースの、CircleCI経由デプロイをするまでの開発の流れをひと通りやってみて、分かったことがいくつかあったので、それをまとめてみた。過去の自分のために。 注意点としては、今回作ったのはWebサービスではなく、スマホゲーム(ネイティブ)のサーバサイドWebAPIという点。なので、いわゆるViewに関わる部分はあんまり出てこないです。すまぬ。 それと、ひと通りの流れをチュートリアル的に解説するような記事ではなく、躓いたポイントだったり、当時分かり
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに みなさんこんにちは! この記事は「必要最小限の努力で最大限実戦で使える知識を提供するRSpec入門記事」、略して「使えるRSpec入門」の第3回です。 今回はRSpecのモックを使ったテストについて説明します。 これまでモックを全く使ったことがない人でもわかるように丁寧に説明していくつもりです。 また、これまでの回と同様、個人的に使用頻度が低いと思っている内容についてはバッサリ説明を省きます。 ただし、第1回や第2回に比べるとテストコードが少し複雑になって、仕組みや動きを想像するのがちょっと難しいかもしれません。 ぱっと頭に入
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに RSpecは難しい、よくわからない、といったコメントをときどき見かけます。 確かにちょっと独特な構文を持っていますし、機能も結構多いので「難しそう」と感じてしまう気持ちもわかります。 (構文については僕も最初見たときに「うげっ、なんか気持ちわるっ」と思った記憶がありますw) しかし、RSpecに限らずどんなフレームワークでも同じですが、慣れてしまえばスラスラ書けますし、実際僕自身は「RSpecって便利だな-」と思いながらテストコードを書いています。 そこでこの記事では、僕が考える「最低限ここだけを押さえていれば大丈夫!!」なR
# coding: utf-8 include ActionDispatch::TestProcess FactoryGirl.define do factory :user do name { Faker::Name.name } avatar { fixture_file_upload Rails.root.join('path', 'to', 'avatar.png'), 'image/png' } end end っていう風にすると良い。 こうすることで、avatar.pngをアップロードした状態のUserを生成できる。 最初ActionDispatch::TestProcessをincludeし忘れてて、「なんで動かないんじゃこいつ」ってなってたので、多分他にも困ってる人いるんじゃないかなぁ。 と思ってたら↓こういうやり方もあるらしい。 How to: Use test fixt
はじめに 本記事は和田卓人さん(@t_wada)が書かれた有名なRSpec入門記事、「RSpec の入門とその一歩先へ、第3イテレーション」をRSpec 3バージョンとして書き直したものです。 詳しくは第1イテレーションに書いた説明を参照してください。 各イテレーション(RSpec 3バージョン)へのリンク 第1イテレーション 第2イテレーション 第3イテレーション(本記事) ソースコードのURL https://github.com/JunichiIto/rspec3-for-beginners/tree/3rd 本記事のライセンスについて 本記事は クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスで提供されています。 備考 本文やサンプルコードは極力オリジナルバージョンを踏襲します。 記述が古くなっている箇所は新しい記述方法に書き直します。 新しい記述方法や和田さんの
最近、JSも交えた総合テストを実施するのにRails界隈で良く使われている(と思う)jonleighton/poltergeist。 poltergeistはWebブラウザ操作DSLであるcapybaraのドライバとして動作します。 実際はphantomJSがバックエンドとして動いています。 phantomJSとRubyがどうやってやり取りしてるかは気が向いたら書くとして、 今回はpoltergeistを使って行う簡単なパフォーマンステストについて書きます。 ちなみに複数のクライアントから同時にアクセスするタイプのものではなく、 一つのクライアントでアクセスした時のレスポンスが来るまでの時間を測る感じです。 ラッシュかけたい場合には使えないので他の方法を考えましょう。 RSpecとcapybaraでfeature spec、つまり総合的なシナリオテストを書く時は以下のようになります。 ペー
Capybara+RSpecでエンドツーエンドなテストを書くときのTipsです require "capybara/rspec"の罠 require "capybara/rspec"はafter(:each)にCapybara.reset_sessions!`を入れてしまいます。 これによりit毎にCapybara.current_sessionが変化してしまうため、以下のようなワンライナーshouldによるテストを難しくしています。 require File.dirname(__FILE__) + "/spec_helper" feature "フォーム入力" do before :all do visit "/form.html" fill_in "u_name", with:"テスト太郎" click_button "送信" end context page do its(:curr
WebアプリケーションのHTTPレベルでの振る舞いに対してテストを記述するとき、皆さんはどのような考えを持ってテストコードを記述しているでしょうか。この投稿では、この手のrequest-specと呼ばれるテストについて考えながら、テストを書くときの幾つかの方針と、RSpec::RequestDescriberを利用してテストコードを簡略化する方法を紹介します。 request-specとは request-specという、HTTPにおけるリクエストとレスポンスの組み合わせを、言わばブラックボックスとして扱うテスト形式の呼び名があります。リクエストを入力、レスポンスを出力として扱い、ある入力に対して期待される出力が返されるかどうかをテストします。rspec-railsの中では、request-specに対して以下の説明が与えられています。 Use request specs to speci
はじめに 有名な初心者向けのRSpec入門記事として、和田卓人さん(@t_wada)の「RSpec の入門とその一歩先へ」という記事があります。 僕もRSpecを全く知らなかった頃に参考にさせてもらいました。 今読んでもとても素晴らしい資料なのですが、RSpecのバージョンが古く、現状の書き方とマッチしなくなってきているのが少しもったいないところです。 そこで、この記事では和田さんの記事をRSpec 3バージョンに書き直してみようと思います。 各イテレーション(RSpec 3バージョン)へのリンク 第1イテレーション(本記事) 第2イテレーション 第3イテレーション ソースコードのURL https://github.com/JunichiIto/rspec3-for-beginners/tree/end_of_iter1 本記事のライセンスについて 本記事は クリエイティブ・コモンズ 表
Ruby on Rails Tutorialのエッセンスを自分なりに整理してみる7 Railsにおけるリンクの記述方法とそのテスト http://qiita.com/kidachi_/items/d704e7eb63513c3831ae の続き。 Ruby on Rails Tutorial(chapter5) http://railstutorial.jp/chapters/filling-in-the-layout#sec-layout_exercises Rspecのリファクタリング 指定のページが指定の要素を持っている(もしくはいない)かをチェックするテストコード。 require 'spec_helper' describe "Static pages" do describe "Home page" do it "should have the h1 'Sample App'"
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く