テストをプロダクトコードと別言語で書くことに関するTL

前から思っていた疑問 「プロダクトコードと別の言語でテストコードを書くのって、いいの?」 をつぶやいたことから発生したTLをトゥギャってみた。
28
ぐるぐる系SQL @bleis

プロダクトコードと別の言語でテストコードを書くのって、いいの?という疑問ががが。JavaのプロダクトコードをScalaとかGroovyで書くのは楽でいいのはわかるんだけど、実例としてのテストという側面を無視しているような気もしてもやもや。

2011-11-15 16:51:58
文殊堂 @monjudoh

@bleis 粒度によるのではないか

2011-11-15 17:11:33
ぐるぐる系SQL @bleis

@monjudoh 例えばTDDを考えたときに、テストはさくっと書きたいという気持ちと、これは例示なんだからプロダクションコードと同じ言語で書くべきだという気持ちの板挟み

2011-11-15 17:14:01
文殊堂 @monjudoh

@bleis 例示というかテストコードを最初のクライアントコードとして、テスト対象のclassを使用したclassの実装はテストコードからコピペして持ってくるとかやるので、そういうのは別言語で書くのはありえない。

2011-11-15 17:16:01
ぐるぐる系SQL @bleis

逆の人いないかなー。テストコードは別言語で書くべき!な人。もしくは別言語でも問題ない!って意見の人

2011-11-15 17:19:00
ぐるぐる系SQL @bleis

TLみてるといそうな気がするんだけども・・・?

2011-11-15 17:19:21
なぎせ ゆうき @nagise

@bleis Javaは宣言的にオブジェクトを記述できないのでテストコードはそれがしやすい言語のほうがいいだろうと思ってますね。ただしリファクタリングで一緒にリネームとかできる言語に限る(そんなのない

2011-11-15 17:20:59
ぐるぐる系SQL @bleis

@nagise つまり、やりたいけどできないからJava使う派、ということですか?

2011-11-15 17:21:51
なぎせ ゆうき @nagise

@bleis それはつまり、マルチランゲージ環境下でのリファクタリングが可能になると世界が変わるということを意味します

2011-11-15 17:22:02
mzp @mzp

@bleis でも、rspecとかDSLバリバリで「元と同じ言語だから使用例になってるだろ!」と言われても、ちょっと納得しづらいものがある

2011-11-15 17:22:55
SKS rep @repeatedly

@bleis C++のサーバのテストRubyで書いてますお

2011-11-15 17:23:09
なぎせ ゆうき @nagise

@bleis JavaのテストコードをJavaで書くメリットは、リファクタリングができること、呼び出し元の検索ができること、が大きいですかね。IDEのそれらの機能を重視してますから宣言的に書けなくてもJavaでテストコードを書いてしまうという

2011-11-15 17:23:57
ぐるぐる系SQL @bleis

@repeatedly サーバに対するテストは、リクエストとレスポンスをチェックするテストと言うことですか?

2011-11-15 17:24:18
なぎせ ゆうき @nagise

@bleis リファクタリングとかしない人はJavaのコードに対してテストコードは宣言的にオブジェクトを作れる言語使えばいいんじゃないですかねー

2011-11-15 17:24:59
ぐるぐる系SQL @bleis

@repeatedly それは今回考えてるものとは違って、アリだと思います。うちでもWebサービスのテストをRubyでやってます

2011-11-15 17:25:50
ぐるぐる系SQL @bleis

@nagise なるほど。TDD的にそれはナシですね。

2011-11-15 17:26:22
SKS rep @repeatedly

@bleis でもテストデータ生成とかはC++で書かれてるので毎回外部呼び出ししていてあばば

2011-11-15 17:26:35
ぐるぐる系SQL @bleis

@t_wada @nagise テストコード側に実装を書いて、それをプロダクションコードに持っていく手法を取っている人にとっては、それでもまだ十分じゃなさそうですね

2011-11-15 17:28:21
ぐるぐる系SQL @bleis

@repeatedly そこをRubyでやると遅くて・・・みたいな?

2011-11-15 17:29:19
SKS rep @repeatedly

@bleis &再実装するのも面倒…

2011-11-15 17:30:02