2017/02/03 JaSST’17 Tokyo
Qiita:Teamに投げた社内ドキュメントだったけど、特に問題ないのでQiitaにも投げる。 前提として browserify-rails とbabelify が導入されている状況を想定してる。 基本方針 新規コードはES2015で書く 本番はbrowserify(-rails)でコンパイルする。 単体テストは node 環境下で走らせる テスト環境下では jsdom で window, document をモックする 単体テストでは ブラウザ特有の挙動はテストしない 裏側の環境(browserifyやspec-helper)は難しくして良いが、利用者からみえる範囲は複雑にしない(npm install; npm testで走る) Universal JavaScript に寄せることでコードのポータビリティを上げる 事前準備 browserify-railsを導入する。 .babelr
RSpecの基本について理解している人を対象に、「RSpecのテストに必要なGem、モデル、コントローラー、Feature(Capybare)、JavaScriptなどの基本的なテストの書き方」についてまとめました。 下記のサイトも参考になります。 Factory Girl Rails のチートシート RSpec/Capybara/Capybara-Webkit のレシピ集 動作環境 Mac OS X 10 Ruby 2.1 Rails 4.1 rspec-rails 3.1.0 shoulda-matchers 2.6.2 factory_girl_rails 4.4.1 capybara 2.4.1 Phantomjs 1.9.8 poltergeist 1.5.1 capybara-webkit 1.3.0 database_cleaner 1.3.0 目次 UTからE2Eテストのた
技術的負債についての自分の考えをまとめます。 言いたいこと 最初から綺麗なコード・設計を書ける状態を目指せ。 そうもいかないものは天秤だが、勝手に背負うな。 技術的負債とは? 技術的負債は事業リスクです。放置することによって事業が失速したり損害が発生したりするため、適切に取り扱う必要があります。 負債の種類と対応は、以下の三つに別けられると自分は考えています。 1. 新規で書く末端機能のクソコード・クソ設計 最初から綺麗なコード・設計を書けるを目指すべきですが、時間がかかるのであればスピード重視でよいでしょう。 「もっと良いように書けるべきだけど、どうすればよいか?」とコメントでも添えて、さっさとプルリを投げてしまうべきです。 末端機能で、あとで上に乗っかる物がないのであればコードの品質はそれほど問題ではありません。テストを整備しておけば、後でレベルが上がったときに綺麗にできるでしょう。
gemを作っていると複数のrubyのバージョンや依存gemのバージョンをカジュアルに組み合わせてテストをしたいというのがよくあると思いますが、あまりやり方が知られていない気がするのでまとめてみます 今回のエントリのサンプルプロジェクト github.com 渋谷.rb[:20150520] のLT資料 gemの複数バージョンカジュアルテスト #shibuyarb from Go Sueyoshi (a.k.a sue445) 最初にまとめ Travis CI使うのがめっちゃ楽。 セットアップ bundle gem コマンドでテストを生成 $ bundle gem multiple_version_test_sample -t --mit Creating gem 'multiple_version_test_sample'... create multiple_version_test_s
はじめに 先週の土曜日(2015年5月16日)に西脇.rb&神戸.rbで「Rubyistのためのテストコード相談会 ~テストの書き方に悩んでいませんか?~」という勉強会を開催しました。 この勉強会は「テストコードに関する疑問や悩みをみんなで持ち寄り、みんなで解決すること」を目的にした勉強会です。 勉強会中はいろいろと興味深い議論が出たので、今回のエントリではその内容を簡単にまとめてみます。 勉強会で挙がった質疑応答 よく使うフレームワークは? RSpecが大多数、Minitestが若干名。 gemを開発するときはMinitest、RailsはRSpec、というように開発内容によってフレームワークを使い分ける、という人もいた。 Minitestってどうなの? 導入が簡単。assertメソッドだけ知っていればなんとかなる。 Railsにも対応している。Capybaraも使える。 RSpecのs
わたしはちょっと意地悪らしい。 例えば、あるテストケースを思いついたとする(しかもかなりの高確率でうまく動かなそうなやつ)。それをね、モノが出来上がって自分の目でちゃんと動くこと(気持ち的にはちゃんと動かないこと)を見届けるまで、プログラマに話さない。*1 とあるイベントのパネルディスカッションか何かで @m_seki から「それは意地悪だなー」と言われて、はじめてそれが意地悪なんだってことに気がつきました。そういうテストを思いついたらすぐに言ってよ!てことみたい。もしプログラマがそれを考慮しないで実装してしまったら確実にバグになるわけで、黙っていることは開発にとって何のメリットもない。 なぜ話さないのか。話せなかったのか。それなりに理由はあったんだけど、まあ、それはいいや。意地悪は良くない。それからは思いついた嫌なシチュエーションや心配事は、なるべく言うようにしてる。 ということは、わた
Jenkinsを使って小さなテストを自動実行して、開発スピードを飛躍的に向上させよう。また、MacでのRuby/Rails環境の構築方法から、テストフレームワーク「RSpec」とインテグレーションテスト環境「Turnip」を使ったテストの書き方までを解説する。 ← 前回 連載 INDEX 次回 → 前回の記事を読んでJenkinsの環境を構築することはできただろうか? 今回は簡単なサンプルアプリケーションの作成を行ってみようと思う。同時に、Rubyの標準的なテストフレームワークのRSpecと、インテグレーションテスト環境であるTurnipを使ったテストの書き方を解説する。作成したテストを、Jenkinsを使って自動実行できるようになれば、あなたの開発スピードは飛躍的に向上することだろう。 Railsの開発環境を構築しよう 2013年10月にリリースされたMac OS X 10.9(通称Ma
ちょっとcookbook書いてちゃんと動くか試したいってときにいちいち新しくVagrantfileを用意してnode.json書いて、knife solo cookしてserverspecでテストして...とかやりたいことはrecipeを試したいだけなのに準備が大変なんですよね。 そんなときはその辺を一気に面倒みてくれる便利なtest-kitchenを使ってcookbookの開発をします。 test-kitchenとはchefのcookbookを任意の環境でテストするツールで、vagrantやec2、docker(LXC)上でcookbookを適用し、minitestやserverspecでテストできます。 もとはchefだけでしたが、プラグインを入れることでpuppetやansibleとも連携できるようです。 設定ファイル test-kitchenの設定ファイルは.kitchen.yml
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く