[#44431] コンストラクタの引数について&インスタンス変数の持ち方について — Akira Hayakawa <ruby@...>
度々オブジェクト指向についての質問ですいません。
17 messages
2008/01/04
[#44433] Re: コンストラクタの引数について&インスタンス変数の持ち方について
— Yukihiro Matsumoto <matz@...>
2008/01/04
まつもと ゆきひろです
[#44453] RSS取得時<enclosure>タグでエラー? — "garyo hosu" <garyohosu@...>
garyoです。いつもお世話になっております。
5 messages
2008/01/08
[#44463] [ANN] Rails勉強会@東京 第26回のお知らせ — "MOROHASHI Kyosuke" <moronatural@...>
各位
1 message
2008/01/11
[#44464] [ANN] rcairo 1.5.1 — Kouhei Sutou <kou@...>
須藤です。
5 messages
2008/01/11
[#44469] pdf 作成 ライブラリ — "Luiz Aoki" <luizruby@...>
はじめまして、青木ルイスと申します、
14 messages
2008/01/12
[#44479] ファイル出力時のprintについて
— m-hatake@...
2008/01/16
畠山と申します。
[#44481] Re: ファイル出力時のprintについて
— KIMURA Koichi <kimura.koichi@...>
2008/01/16
木村です。
[#44483] format %g の丸めについて — 山崎雄介 <y-yamasaki@...>
山崎(ゆ)です。
14 messages
2008/01/16
[#44517] www.ruby-lang.org/ja/man/ を静的HTMLに変更 — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
6 messages
2008/01/20
[#44536] カタカナ→ひらがな変換 — "Hideo Konami" <konami@...>
小波です。
8 messages
2008/01/25
[ruby-list:44448] 他のクラスに依存しているコードのテスト
From:
とみたまさひろ <tommy@...>
Date:
2008-01-06 13:22:14 UTC
List:
ruby-list #44448
とみたです。
あるクラス内で他のクラスを使用しているような場合、Test::Unit や RSpec
でどのように書くのが良いのでしょうか。
たとえば、プログラムが
class A
def hoge()
...
end
end
class B
def fuga()
a = A.new
...
a.hoge(something)
end
end
…というような構造の場合、クラス B のテストを書くのに、クラス A の内部
構造に依存したくありません。
Ruby なのでクラス B のテストコード中で、クラス A の内容を B のテスト用
に書き換えてしまうという方法もあると思いますが、そのようにしてしまうと、
Test::Unit::AutoRunner や RSpec の spec コマンド、rcov 等で複数のテスト
を1プロセスで実行しようとしたときに、問題になってしまうと思います。
B#fuga() の引数として、A オブジェクトを渡すようにしてしまうという手もあ
ると思います。
class B
def fuga(a=nil)
a ||= A.new
...
a.hoge(something)
end
end
こうすれば、外部から a を渡せるのでテストコードを書きやすくなるように思
うのですが、プログラム中にテストのためだけに必要なコードを書くというの
はどうなのかなぁ…と思ったりします。
TDD や BDD の考え方からいくと、テストコード(スペックコード)ありきなので、
問題ないのかなぁとかとも思ったり…。
みなさんはどのように書いているのでしょうか。
--
とみたまさひろ <tommy@tmtm.org>
3469 42CC 4D32 F53C AD98 65A5 8C37 FF09 69C1 6040