エピソード1 初めに この記事は一応、Ruby入門者向けの記事ですが同時にテスト駆動開発入門者向けともなっています。 対象レベルによって以下のように読み進められれば効率が良いかと思います。 Ruby入門者でプログラミング初心者・・・とりあえずコードの部分だけを写経しましょう。解説文は最初のうちは何言ってるかわからないと思うので5回ぐらい写経してRubyを書く感覚がつかめてきてから読み直すといいでしょう。もっと知りたくなったら参考図書にあたってください。と言っても結構お高いので「リーダブルコード」と「かんたんRuby(プログラミングの教科書)」といった初心者向け言語入門書から買い揃えるのがおすすめです。 Ruby経験者でテスト駆動開発初心者・・・コード部分を写経しながら解説文を読み進めていきましょう。短いステップでテスト駆動のリズムが感覚がイメージしていただければ幸いです。もっと知りたくなっ
Rubyのbundled gemのtest-unitをメンテナンスしている須藤です。 歴史 test-unitはxUnitスタイルのテスティングフレームワークです。Rubyのテスティングフレームワークの歴史(2014年版)にまとめてある通り、Ruby本体に標準添付されています。 Rubyに標準添付されているライブラリーには実は次の3種類あります。 ただの標準添付ライブラリー(例:URI) requireするだけで使えるライブラリー default gem(例:csv) requireするだけで使えるライブラリー RubyGemsで更新できる Gemfileでgemを指定しなくても使える bundled gem(例:test-unit) requireするだけで使えるライブラリー RubyGemsで更新できる どれも標準添付ライブラリーなのでrequireするだけで使えます。違いはRubyG
技術書典は書く側で参加したい気持ちはあるけど、書くネタと書く時間があるかどうか…— 神速@リリカルエンジニア (@sinsoku_listy) 2017年4月9日 あー、自分の知ってるRailsアンチパターンとか書きたいかも。自分の犯した罪(アンチパターン)を贖罪したい…。— 神速@リリカルエンジニア (@sinsoku_listy) 2017年4月9日 技術書典2 に行ったら無性に本を書きたくなったけど、本書くのは 面倒 大変です。 というわけで、とりあえずブログに記事を1つ書いてみた。 factory_girl factory_girl はテスト用データを作成するときに使う gem です。 下記は User のモデルを定義するファクトリーです。 FactoryGirl.define do factory :user do first_name "John" last_name "Doe
これは Ruby アドベントカレンダー 24 日目の記事です。 Railsを長く開発していると機能を追加していくにつれてテストコードも肥大化し、初めのうちは一瞬で終わっていたrspecも気がつけば数十分かかるようになっていたということも多いと思います。テストをCIで回していると、結果が得られるまで作業が止まることになるので、テスト時間の肥大化は結構大きなインパクトを持ってきます。 テストの中にボトルネックがある場合それを解消することである程度の高速化ができますが、純粋にテストの数が多いということになると、全てのテストを実行するのを諦めないのであれば、テストを並列に実行するのが高速化のアプローチとなります。 テストを並列実行するgem テストを並列に実行するgemはすでに世の中にいくつもあります。 rrrspec Cookpad社が作っているrrrspecはRSpecを複数サーバで分散実行し
少し前までiOSとかAndroidのネイティブアプリとかゲームアプリとかしか開発してなくて、テスト真面目に書いたことが無かった。 テスト真面目に書いたこと無くても、テスト書いたほうが良いとは思っていて、MockとかStubとかテストデータの生成と破棄とかを考えると安い受託開発で納期も少ないしディレクターとかに手動テスト任せたほうがコスト低いよねみたいな感じだった。あとは身近にスマホアプリのテストをしっかりと書いてきた人が居なかったのもテスト真面目に書いてなかった一因ではあると思う。 この前までcocos2d-xでゲームを開発してて、最初はtemplate使って頑張ってDIみたいなことしてみたりしたけど、めちゃくちゃコスト高いし、C++製でandroid-nkdで問題なくビルド出来る良さそうなMockとかStubとかDIとか出来るライブラリが無くて結局通信とかデータとかが絡まない部分のテスト
2014年12月にRuby 2.2がリリースされる予定です1。 Ruby 2.2にはRuby 1.9.1のときに外されたtest-unitというテスティングフレームワークが再びバンドルされる予定です。Rubyのテスティングフレームワーク周りに詳しくない人にはよくわからない状況でしょう。そこで、Rubyのテスティングフレームワークの歴史を説明することで状況を整理します。 名称の整理 この説明の中ではたくさんのテスティングフレームワークが登場します。似たようなものもあるため、最初にテスティングフレームワークの名称を整理します。この説明の中で登場する名称は次の通りです。 RubyUnit Lapidary rubyunit Test::Unit test/unit test-unit miniunit minitest RSpec 違いがわかりますか?ざっくり説明すると次の通りです。 RubyU
テストの書き方 基本 今までのTest::Unitと変わらないので,classで書く.ただ,昔のTest::Unitとは違い,TestCase毎に呼ばれるstartupやshutdownなどが増えている. require 'test/unit' class TestSample < Test::Unit::TestCase class << self # テスト群の実行前に呼ばれる.変な初期化トリックがいらなくなる def startup p :_startup end # テスト群の実行後に呼ばれる def shutdown p :_shutdown end end # 毎回テスト実行前に呼ばれる def setup p :setup end # テストがpassedになっている場合に,テスト実行後に呼ばれる.テスト後の状態確認とかに使える def cleanup p :cleanup
最近の RSpec は、それまで obj.stub(hoge: value) と書けたものが、 allow(obj).to receive(:hoge).and_return value と書かないといけなくなったりとか、正気の沙汰とは思えないような変更をしたりするので、何年かぶりに Test::Unit を使ってみようとリハビリ中です。 RSpec は、テストケースを入れ子にできたり、テストケースや example がクラスやメソッドではなく、文字列で自由に書くことができたりしたのが良かったのですが、最近の Test::Unit ではそれもできるようになっています。 [ruby-list:48926] [ANN] test-unit 2.5.2 このリリースはとみたさんに使ってもらえるように改良したリリー スです。新しく追加した--locationはRSpecの--line_number
■ [ruby] ruby 同梱の test-unit と minitest の今後 今朝のコミットで stdlib としての minitest が消えたので一度ゼロベースから考え直しという事になった。ふんわりしてるけど、議論している内容はこんなところ。 minitest5 は同梱しないで packaging やインストールプロセスのどっかで gem install minitest して入るようにしたい *.gem ファイルを同梱するのか、しないでパッケージ生成時に取得するのかは未定 test-unit は https://github.com/test-unit/test-unit を同梱したい(test-unit2 と呼んでいる) API に非互換があるのでどれくらい非互換があるかを調べる その場合は rubygems や rake 同様に trunk を upstream としたい
Webサーバを利用したサービスの増加に伴って,Webサーバ上で生じるインシデントも増加している.これらの問題を解決するために,Webサーバソフトウェアの機能拡張が必要である.Apacheを利用していた場合,機能拡張のためにはC言語やApache内部の仕様を深く理解している必要があり,開発の敷居が高く,コンパイルが必要となって保守性が低い.そこで,現在注目されてきている組み込みスクリプト言語mrubyを利用して,Apacheに機能拡張のためのmruby用インターフェイスを実装し,mrubyスクリプトによって簡単にApache内部の機能拡張を行える機構mod_mrubyを提案する.mod_mrubyは,Apache内部に存在する各種リクエスト処理フェーズにおいて,任意のmrubyスクリプトを任意のフェーズでフックして実行できるインターフェイスを提供している.フックする際には,Apache内部で
RSpec is a Behaviour-Driven Development tool for Ruby programmers. BDD is an approach to software development that combines Test-Driven Development, Domain Driven Design, and Acceptance Test-Driven Planning. RSpec helps you do the TDD part of that equation, focusing on the documentation and design aspects of TDD. Documentation This is the official documentation site for RSpec. Much of the document
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0063 号 バックナンバー Rubyist Magazine 0063 号 Rubyist Magazine 0062 号 Kaigi on Rails 特集号 RubyKaigi Takeout 2020 特集号 Rubyist Magazine 0061 号 Rubyist Magazine 0060 号 RubyKaigi 2019 直前特集号 Rubyist Magazine 0059 号 Rubyist
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く