2013-07-01から1ヶ月間の記事一覧
概要 Flashの利用 内容 Flashはリダイレクト前後で一時的に値を格納する仕組みです。 リダイレクトと合わせて使用する場合 redirect\to :action => "index", :notice => "notice message" redirect\to :action => "index", :alert => "alert message" 利用時…
概要 integrationテストのヘッドレス・ブラウザテスト切り替えrakeタスクの作成 内容 integrationテストのヘッドレス・ブラウザテスト切り替えrakeタスクの作成します。 サンプル 仕様 前提はこちらの記事を参照。 Ruby on Rails | Rails + Capybara + Facto…
概要 Rails + Capybara + FactoryGirlブラウザテストのヘッドレス環境との切り替えについて 内容 Rails + Capybara + FactoryGirlブラウザテストのヘッドレス環境との切り替えに関する 内容をまとめます。主に想定される用途としては ・日々実行されるテスト…
概要 DatabaseCleanerでテストデータクリア 内容 DatabaseCleanerでテストデータクリアします。FactoryGirl+Capybara(+ブラウザテスト)などの構成を利用する際に、 FactoryGirlとブラウザ側が別トランザクション管理になるため、 transactionを有効にし…
概要 プロジェクト固有の設定値の管理 内容 environment/development.rb environment/test.rb environment/production.rb などに固有の設定を追加 サンプル environment/xxx.rb Bookshelf::Application.configure do config.hoge = true end 利用側 Bookshel…
概要 アラウンドエイリアス 内容 アラウンドエイリアスとは再定義したメソッドから以前のメソッドをエイリアスとして呼び出すことです。 ・元の処理の前後に処理を追加したり ・ラップした処理を作成したり ・既存機能を拡張しつつ、元のメソッドも利用可能…
概要 FactoryGril + RSPec + Capybara構成で画面キャプチャの取得 内容 画面キャプチャを利用するには以下のコマンドを利用します。 page.save_screenshot('file_path/file_name.png') この際、ヘッドレス環境ではキャプチャ不可能なため 普段のテストで速度…
概要 SimpleCovでカバレッジレポートの出力 内容 SimpleCovでカバレッジレポートの出力します。 導入 Gemfileに以下を追加 gem "simplecov", "~> 0.7.1" spec_helper.rbに下記を追加 require "simplecov" SimpleCov.start "rails" 確認 bundle exec rake spec…
概要 テーブル構造の文字列をスペースパディングで整形するPlugin 内容 テーブル構造の文字列をスペースパディングで整形するPluginを作成しました。 各種Wiki記法やMarkdown記法や、CucumberのDSL等で以下のような記述を利用することが多いと思います。 |co…
概要 パラメータ化テストのDSL化 詳細 下記記事のRSpecでパラメータ化テストをDSL化します。 RSpec | パラメータ化テスト http://d.hatena.ne.jp/tbpg/20130715/1373901728 仕様 下記のような記載でテストケースのパラメータ群を記載できます。 スペース部分…
概要 固定IP設定時にetc/resolv.confDNSの設定が起動するたびに消えてしまう場合 内容 下記ファイルにdnsの設定を記載することで問題が解消します。 /etc/resolvconf/resolv.conf.d/head # Dynamic resolv.conf(5) file for glibc resolver(3) generated by …
概要 rakeタスクの作成 内容 rakeタスクの作成します。 rakeタスクの作成 lib/tasksにhoge.rakeを作成 desc 'only hoge.' task :hoge do puts "hoge" end 実行 $ bundle exec spring rake hoge hoge
概要 YARDをRakeから呼び出す 内容 YARDをRakeから呼び出します。 rakeタスクの作成 lib/tasksにyard.rakeを作成 require 'yard' require 'yard/rake/yardoc_task' FILES = ['app/controllers/**/*.rb', 'app/helpers/**/*.rb', 'app/mailers/**/*.rb', 'app…
概要 RubyのドキュメンテーションツールのYARDについて。 詳細 項目 内容 YARDのインストールについて http://d.hatena.ne.jp/tbpg/20130719/1374247300 YARDをRakeから呼び出す http://d.hatena.ne.jp/tbpg/20130719/1374247873
概要 YARDの導入 内容 JavaDocライクな記法でRubyのAPIドキュメントを生成できる YARDを導入します。 インストール Gemfileに以下を追加 gem "yard", "~> 0.8.6.2" またはgemのインストールを行う gem i yard サンプル サンプルコード hoge.rb # hogeクラス …
概要 Eclipseの設定でJavaDoc未記載の箇所を警告表示にする 内容 下記の設定でJavaDocの警告表示が可能 ・設定=>Java=>コンパイラ=>Javadoc=>Process Javadoc commentsにチェック 例:publicとprotectedの要素でJavaDocがないものや、文法が誤っているものを…
概要 FactoryGirlとspring併用時はspringを再起動する必要がある 内容 FactoryGirlとspring併用時に、Factoryを編集した場合 springを再起動するまで内容が反映されません。 Rails+spring+RSpec+FactoryGirlの構成で開発する場合は要注意。springの再起動時…
概要 ウェブアプリケーションのテストフレームワークCapybaraについて。 詳細 項目 内容 Capybaraのインストールについて http://d.hatena.ne.jp/tbpg/20130718/1374159110 Capybaraのスニペットを導入 http://d.hatena.ne.jp/tbpg/20130718/1374157708 Fact…
概要 RailsのブラウザテストのためCapybaraをインストール 内容 インストール ・Gemfileに下記を追加 gem "capybara", "~> 2.1.0" gem "capybara-webkit", "~> 1.0.0" gem "poltergeist", "~> 1.3.0" gem "launchy", "~> 2.3.0" capybara-webkitとpoltergeis…
概要 Capybaraのスニペットを導入 内容 インストール ・Ctrl+Shift+p,install,enter,Capybara Snippets 利用サンプル input generate atf attach_file "id_or_name_or_label", "path" back background che check "id_or_name_or_label" cho choose "label" c…
概要 Sublime Text2 Ruby でTestUnit,Cucumber,RSpecのテストを効率化 内容 インストール ・Ctrl+Shift+P,install,Enter,RubyTest 設定 ・'Sublime Text 2' -> 'Preferences' -> 'Package Settings' -> 'RubyTest' -> Setting-User デフォルトから変更したい…
概要 pry-debugger用のブレイクポイントをsnippetにする 内容 pry-debbugerでブレイクポイントを設定する際に利用する binding.pryをスニペット化します。 <snippet> <content></content> <tabTrigger>bp</tabTrigger> <scope>source.ruby</scope> <description>use pry-debugger breakpoint</description> </snippet> 参照 tbpgr GitHub https://gith…
概要 spec/supportにサポートファイルを配置してテストの共通化をする 内容 support配下はspec_helperで読み込み対象に設定しているため、他のspecでrequireしなくても利用可能です。 逆に言うと、support以外のフォルダにファイルを保存してrequireもしたい…
概要 例外の検証 内容 例外の検証時はブロック+raise_errorメソッドで検証します。 lambda {test_method(args)}.should raise_error(error_class) サンプル 実装 # encoding: utf-8 class Hoge def hoge(error) raise HogeError.new if error end end class…
概要 pry-debuggerでRailsのデバッグ 内容 ブレイクポイントとしてbinding.pryを設定した場合、 その場所限りでデバッグが可能でしたが、ステップイン・ステップアウトなどができません。 そこで、pry.navを追加すると移動操作が可能になります。 設定 Gemfi…
概要 Rails Consoleをirbからpryに変更する 内容 irbの「強化版」pryをRails Consoleで利用するには以下をGemfileに追加します。 gem "pry-rails", "~> 0.3.1" 設定後bunlderの実行 bundle 設定確認 Rails Console起動 bundle exec spring rails c pryの機能…
概要 シーケンスで連番データを作成 内容 ユニーク制約の付いている列など、同一のテストデータを利用できない場合に シーケンスを利用することで制約を回避出来ます。 sequence(:login) {|n|"login_#{n}"} サンプル 下記記事のサンプルを少し編集してみまし…
概要 ActiveModel::ModelでDB以外のモデルを定義 内容 ActiveModel::ModelでDB以外のモデルを定義します。 これにより、検索フォーム等についてValidation等の機能や、 form_forタグなどを利用出来ます。 サンプル signin_controller require "pp" class Sig…
概要 エラー時の表示書式設定 内容 ・form_forを利用 ・field_with_errorsにスタイルを指定 ※field_with_errorsはRailsのform_forを利用したValidationを行うと、自動的に設定されるCSS Classです。 サンプル application.rb Validationエラー時のスタイルは…
概要 xclipにaliasを設定してgetclip,putclipとして使う 詳細 UNIXコマンド | xclip - コマンドからのクリップボードの操作Comments http://d.hatena.ne.jp/tbpg/20130527/1369672244 上記の記事で紹介したxclipはコンソール上でクリップボードのやり取りが …