運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。
このエントリでは,Ruby on Rails (以下 Rails)の ActiveRecord モデルテストについて,1) どこの何をテストすればよいか,2) どのようにテストを書けばよいか,のガイドラインを示します.このガイドラインは Rails 公式のものではなく,id:passingloop が使っている私的なものです.疑問・質問・批判・間違いの指摘はページ下部のコメント欄までお願いします. はじめに Rails は TDD/BDD サポートが充実した Web アプリケーション開発フレームワークです.Rails で使える Test::Unit や RSpec などといったテスティングフレームワークの使い方に関する解説も豊富にあります.しかし,「どこをどうテストすればよいのか」についての解説は,「使い方」の解説と比較して少ないように思います.もっとも,テスト一般についてどう書くかはアプ
$ bundle install $ spork --bootstrap Using RSpec Bootstrapping /Users/fakestarbaby/Projects/rails/devfun/spec/spec_helper.rb. Done. Edit /Users/fakestarbaby/Projects/rails/devfun/spec/spec_helper.rb now with your favorite text editor and follow the instructions. require 'rubygems' require 'spork' #uncomment the following line to use spork with the debugger #require 'spork/ext/ruby-debug' Spork.pre
uninitialized constant ActiveSupport::Dependencies::Mutex (NameError) rvmを再インストールしたのに伴い、ruby 1.8.7を再インストールしたらRails 2.3.8でuninitialized constant ActiveSupport::Dependencies::Mutex (NameError)というエラーが出るようになった場合の解決策。 ruby on rails - uninitialized constant ActiveSupport::Dependencies::Mutex (NameError) - Stack Overflowを見ると、Rails2.3.8と最近のRubyGemsで起こるエラーらしい。 RubyGemsのバージョンを確認gem -v 1.6.2rvmのrubyを再インストールし
Ruby (Rails) でテストカバレッジといえば Rcov ですね。 しかし Rcov は Ruby 1.9.x に非対応なので Ruby 1.9.2 + Rails3 な環境で開発をしている方は SimpleCov を使うと幸せになれます。名前にSimpleと付いていますが高機能で見た目も綺麗です。また simplecov-rcov を併用すれば Rcov のフォーマットで出力することも出来るので、Jenkins などのCIツールとの連携も難しくないはずです。 colszowka/simplecov – GitHub fguillen/simplecov-rcov – GitHub 使い方# Gemfileに下記コードを追加してbundle installします。
ActiveRecordは基本ずっと接続をはりっぱなしにします。 なので長時間接続をはりっぱなしにするため タイムアウト等で接続がきれると問題がでます。 MySQLでDBの接続がきれるタイミング 状況別 Railsの場合 HTTPリクエストのあるたびに接続が切れてないかを確認します。切れてる場合は再接続するようになっているので問題なさそうです。 バッチ、デーモン等 ActiveRecordを使った場合はずっとつなぎっぱなしになるため、途中で接続が切れるとエラーになります。 reconnectオプションは危険 じゃあバッチ等の場合自動で再接続してくれればと思うと MySqlのクライアントライブラリレベルでリコネクトの概念がありました。 railsで使うにはdatabase.ymlに:reconnect = trueで指定できます。 が!! railsの実装ではデフォルトはOFFになっています
データベースの出力を Excel ではき出して欲しいという要望はかなり多いです.Web アプリの場合,HTML ファイルをそのまま Excel に読み込ませてしまえば,Excel 側がそれなりに解釈してくれるため,出力する側でうまく工夫してあげればよいことになります.Excel 出力の要望はかなり頻繁にあるため,その部分で手抜きができるように,仕組みを作ったので紹介してみます. コントローラの変更 Excel 出力したいときには,以下のようにインスタンス変数 @export_excel を true にし,format に .xls を追加します.これだけでページが Excel 出力可能になります. def show @export_excel = true # この行を追加 @club, @ids = get_parameters_and_ids [ Club.gp(true) ] (省
Find actively maintained & popular open source software libraries for the Ruby programming languageThe Ruby Toolbox is a catalog of all Rubygems that keeps track of popularity and health metrics to help you choose a reliable library CategoriesTo give you an overview of what open source libraries are available for a given task we group projects for common problems into categories. The catalog itsel
ちょっとBundlerがらみでハマったときに「RubyGemsのバージョンが原因かな?」と思ったので、RubyGemsのバージョンを最新版から特定のバージョンに下げる方法と、また元に戻す方法について調べた。 バージョンダウン RubyGems 1.4系が出たときに、Ruby 1.9系で動かないという問題があって結構話題となり、それが解消されたRubyGems 1.5系が出たときにはRailsの特定のバージョンで動かないという問題が出た。その時にRubyGemsをバージョンダウンする方法を載せた記事を見ていたので、それを参考にやってみた。RubyGemsをバージョンダウンするには、rubygems-updateというgemをインストールして行う。 $ gem -v 1.5.2 $ gem list rubygems-update ### LOCAL GEMS *** rubygems-upd
前回はRailsで使われるテストフレームワークをご紹介しました。今回は具体的なWebアプリを例に、簡単なテストを使ったリファクタリングについて解説します インテグレーションテストのために「Cucumber」を利用する 前回は、Railsで使われるテストフレームワークをご紹介しました。今回から、いよいよ実際のテストを書きます。ただ書くだけでは物足りないので、前々回の連載で指摘したコードレビューの結果から、リファクタリングの候補をリストアップし、テストを書きながら1つ1つつぶしていきましょう。 bitlyの設定はサーバの立ち上げ時にするべき 重複したコード 本来モデルにあるべきロジックがコントローラにある 不必要な構文「then」など まずは1の、「bitlyの設定」のロジックを変更したいと思います。この部分です。 class ItemsController < ApplicationCont
Rails 3.1ではjQueryが標準になるそうなので、すぐに要らない知識になるかもしれませんが、Rails 3.0でのjquery-railsの使い方を残しておきます(このエントリの対象はjquery-rails 1.0.2)。 まず、Gemfileに以下のような記述を追加して、bundleします。 gem 'jquery-rails'' ジェネレータを実行して、不要なファイルの削除と必要なファイルの生成を行います。 $ rails g jquery:install このジェネレータによって、prototype.js関連の以下のファイルが削除され、 public/javascripts/prototype.js public/javascripts/effects.js public/javascripts/dragdrop.js public/javascripts/controls
祖母の白寿のお祝い 先日、満99歳(数えで100歳)になった祖母の白寿のお祝いをやった。 さすがに身体のあちこちに不具合が出てきており、そろそろ本格的に外出も難しくなってきたので祖母と一緒に家族で集まれるのはたぶんこれが最後だろう。 下は0歳から上は99歳までいるので、移動と諸々…
delayed_jobを使ってみたかったのでメモ。 但し、非同期処理自体はWindowsで実行できない模様なので、Jobの登録までしかローカルで実行できない感じ。 ちなみに利用したのはgemでインストールできるやつ。多分collectiveidea's delayed_job インストール 環境 Windows XP Professional SP3 ruby 1.8.6 (2010-02-04 patchlevel 398) [i386-mingw32] gem 1.3.6 gemからインストール gem install delayed_job 以下のようになった。 現時点での最新は2.0.3らしい Successfully installed daemons-1.0.10 Successfully installed delayed_job-2.0.3 2 gems installed
ActionView::Helpers::FormBuilder.module_eval do def error_message(attribute) @object.errors[attribute].map{|error| '<span class="error">' + error + '</span>'}.join("<br>").html_safe end end これを使うと <%= form_for(@user) do |f| %> <%= f.label :name %> <%= f.text_field :name %> <%= f.error_message :name %> <% end -%> みたいに書ける
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く