テスト
前回 までで一般的な Web アプリケーションを作るのに必要な Controller 部分のサンプルが溜まってきたと思います。あとは UseCase とか Repository が残っていますが、こいつらは Micronaut 依存が少ないので興味がある方は引き続きやっていただければと思…
2020.05.28 追記: やっぱり mock 使わない方が良さそうに思えてきましたので、この記事から考えが変わってます はじめに 以前、私の著書では 時間が限られた中、本番に使用しない Mock オブジェクトを作成するよりも、依存する実クラスを使用してテストケー…
JaSST'19 Niigata が長岡で開催されたので参加してきました。 お堅い空気のイベント久しぶりでした。 S1) 基調講演 レビューのキキメ ~あなたのレビューは何のため? レビューは静的なテストの1つであるという所はなるほどなぁと思いました。最近レビュー…
ござ先輩の記事に触発されたので書いてみる。自分が書いたプログラムに対してテストをする必要があることについてはご認識の通りでしょう。自分の趣味に留まらず、そのプログラム(で作られたシステム)がビジネスを回す上で必要だったり、「お金」という対…
負荷テストは、ある程度の規模でのシステム開発では避けて通れない工程です。これを疎かにすると、同時アクセスが増えた時やテーブルにデータが溜まった時に思うような時間でレスポンスが帰ってこないことになりかねません。擬似的に同時アクセスをかけたり…
一緒に仕事をしてもらうパートナーさんの面談をする時に 大体私は簡単なJavaのソースコードとテストクラスを書いてもらってます。*1 お題は1から100までの数値に対する「Fizz Buzz」で 標準出力に結果を出力する処理をテストクラスと一緒に書いて、というも…
単体テストにおいてDAO*1周りは、世の中の風潮として、 「テストがすぐに終わらないからその部分はMockで代替」 とされてしまうことが多いと思います。 たしかに重要なのは永続化することではなく、永続化する為のデータを作る ビジネスロジック部分であるこ…
例えば、DBに格納されているデータを引っ張り出して ゴニョゴニョ計算する処理があったとします。 さて、皆さんはこの処理の単体テストを書くとしたら どうしますか? DBアクセス部分と計算部分を1つのロジックと見なし、 一気にテストしちゃいます? 確かに…
参加してきましたー。 仕事に絡まない人たちとテストについて話をする機会が無いので 今回のような勉強会はやっぱり刺激がありました。 忘れちゃいけないのは 最終的に作らなければならないのは 動くアプリケーション*1であり、 その構成要素であるソースコ…
xUnit Test Patterns 読書会に参加するのに、本が無いと駄目ですよねー。洋書だけど勇気を出して購入。 xUnit Test Patterns: Refactoring Test Code (Addison-Wesley Signature Series (Fowler))作者: Gerard Meszaros出版社/メーカー: Addison-Wesley Prof…
InfoQの記事です。 Kent Beck氏、ごく短期のプロジェクトではテストを省略することを提案 うーん、リファクタリングだけの為にテストコードを書くとしている人は それでもいいのかもしれませんが、個人的には保守し続ける為にテストが必要だと思っています。…
原因がわかりました。一般的なMavenのお作法では、公開サーバーからjarを取ってくることになっていますが、 私の開発環境では、jarはSVNで管理しているワークスペースを見るようにしてます。 junit-4.5.jar system ${basedir}/lib/junit-4.5.jar どっちでも…
ビルドを見直そうと、AntからMavenに移行中。 時間はかかりましたが移行自体は、大きくつまづくことはありませんでした。 皆さんが道を切り開いてくれたおかげです。 で、そのプロジェクトには、 JUnit3系で書かれたテストとJUnit4系で書かれたテストが混在…
ユーザー企業の受け入れテストについて話を聞く機会がありました。 その会社は、 ・操作の流れが利用者にとってわかりやすいか ・文言にわかりにくい記述があるか を受け入れテストとして実施されるようです。 ・・・それが受け入れですか。 そんなもん画面…
JUnitを通す為には必要かもしれないが、Mockを作る工数を考えると 本当のクラスを呼んだほうが効率がいいかもしれない。 (画面が呼び出すサービスをMockにしておき、 画面単体で動くようにしてServiceと画面を並行して確認するのも手だが)Mockが想定どおり…
テストをしやすくするために、アプリケーションの作りを工夫することは必要だったりします。どのシステムでも使われるのは、日付系。DBから日付を取得する場合でも、APサーバのシステム日付を取得する場合 面倒でもHelperクラスを作って、モードによって本当…
シグネチャ設計において、ジェネリックスは必須(ClassCastExceptionが出ないように) List + [0] -------------> Class A + [1] -------------> Class B + [2] -------------> Class A + [3] -------------> Class A + こんなListパラメータはありえない(C…