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

前から思っていた疑問 「プロダクトコードと別の言語でテストコードを書くのって、いいの?」 をつぶやいたことから発生したTLをトゥギャってみた。
プログラミング
28
ふ''れいす @bleis
プロダクトコードと別の言語でテストコードを書くのって、いいの?という疑問ががが。JavaのプロダクトコードをScalaとかGroovyで書くのは楽でいいのはわかるんだけど、実例としてのテストという側面を無視しているような気もしてもやもや。
文殊堂 @monjudoh
@bleis 粒度によるのではないか
ふ''れいす @bleis
@monjudoh 例えばTDDを考えたときに、テストはさくっと書きたいという気持ちと、これは例示なんだからプロダクションコードと同じ言語で書くべきだという気持ちの板挟み
文殊堂 @monjudoh
@bleis 例示というかテストコードを最初のクライアントコードとして、テスト対象のclassを使用したclassの実装はテストコードからコピペして持ってくるとかやるので、そういうのは別言語で書くのはありえない。
ふ''れいす @bleis
逆の人いないかなー。テストコードは別言語で書くべき!な人。もしくは別言語でも問題ない!って意見の人
ふ''れいす @bleis
TLみてるといそうな気がするんだけども・・・?
なぎせ ゆうき @nagise
@bleis Javaは宣言的にオブジェクトを記述できないのでテストコードはそれがしやすい言語のほうがいいだろうと思ってますね。ただしリファクタリングで一緒にリネームとかできる言語に限る(そんなのない
ふ''れいす @bleis
@nagise つまり、やりたいけどできないからJava使う派、ということですか?
なぎせ ゆうき @nagise
@bleis それはつまり、マルチランゲージ環境下でのリファクタリングが可能になると世界が変わるということを意味します
mzp @mzp
@bleis でも、rspecとかDSLバリバリで「元と同じ言語だから使用例になってるだろ!」と言われても、ちょっと納得しづらいものがある
SKSの申し子 @repeatedly
@bleis C++のサーバのテストRubyで書いてますお
なぎせ ゆうき @nagise
@bleis JavaのテストコードをJavaで書くメリットは、リファクタリングができること、呼び出し元の検索ができること、が大きいですかね。IDEのそれらの機能を重視してますから宣言的に書けなくてもJavaでテストコードを書いてしまうという
ふ''れいす @bleis
@repeatedly サーバに対するテストは、リクエストとレスポンスをチェックするテストと言うことですか?
なぎせ ゆうき @nagise
@bleis リファクタリングとかしない人はJavaのコードに対してテストコードは宣言的にオブジェクトを作れる言語使えばいいんじゃないですかねー
ふ''れいす @bleis
@repeatedly それは今回考えてるものとは違って、アリだと思います。うちでもWebサービスのテストをRubyでやってます
ふ''れいす @bleis
@nagise なるほど。TDD的にそれはナシですね。
SKSの申し子 @repeatedly
@bleis でもテストデータ生成とかはC++で書かれてるので毎回外部呼び出ししていてあばば
ふ''れいす @bleis
@t_wada @nagise テストコード側に実装を書いて、それをプロダクションコードに持っていく手法を取っている人にとっては、それでもまだ十分じゃなさそうですね
ふ''れいす @bleis
@repeatedly そこをRubyでやると遅くて・・・みたいな?
残りを読む(15)

コメント

コメントがまだありません。感想を最初に伝えてみませんか?

ログインして広告を非表示にする
ログインして広告を非表示にする