EasyMockの基本的な使い方の備忘録
内製化支援などの案件で実装初心者の方にレクチャすることがあるのですが、テストの実装は皆さん躓きやすい部分です。単体テストでもモックオブジェクトを使ったりしてなおさら難しい。それらに関しては外部のライブラリなのでJavaの講座でもやらなかったりします。 というわけでそのようなライブラリの中でも以前の案件でよく使われていたEasyMockについて、大体カバーできるかなという使い方をおさらいしようと思います...
記事を読むJava用モック・フレームワーク「Mockito」を使ってみる(その3:テストケースをまとめる編)
前回は「Mockito」でvoid型メソッドをモック化する方法について解説しました。 今回は「複数のテストケースを1つのテストケースにまとめる」方法について解説したいと思います。 テストケース数が多くなりすぎた時 # これまで使用してきたサンプルプログラム「FooController」と「BarSensor」の仕様を再度確認します。 「BarSensor」の仕様: 対象物との距離を測定する「scan」メソッドを持つ。戻り値はInt型...
記事を読むJava用モック・フレームワーク「Mockito」を使ってみる(その2:void型メソッドのモック編)
前回は「Mockito」の基本的な使い方を解説しました。 今回は「void型メソッド」をモック化する方法を解説したいと思います。 「whenメソッド」と「doメソッド」 # void型メソッドのモック化について解説する前に、モックの動作定義について再度説明したいと思います。 前回はモックの動作を定義するとき「whenメソッド(when/thenReturn)」を使用しました...
記事を読むJava用モック・フレームワーク「Mockito」を使ってみる(その1:基本編)
「Mockito」とは # Mockito は、Java でユニットテストを行う際に使用されるモック・フレームワーク(mocking framework)です。 Mockito を使用すると、実際のオブジェクトの代わりに「モック(仮の実装)」を作成し、テストケース内で特定の振る舞いを模倣できます。 外部依存の他のクラスが完成していない状態でも、独立してテストを実行することができます。 Mockito は、テスト駆動開発(TDD)と相性が良く、コードの品質を向上させるのに役立つツールです...
記事を読む今さら聞けないMaven – 3.9.0で追加されたローカルリポジトリの分割
これまで久しく大きな機能追加が行われてこなかったMavenですが、2023年1月31日にリリースされたMaven 3.9.0でコレは!と思うローカルリポジトリの分割機能が追加されました。今回はこのローカルリポジトリの分割機能を紹介します。 なお、3.9.0ではJava8が必須になるなど他に多数の改善や変更が加えられています。他の変更詳細についてはリリースノートを参照ください...
記事を読む今さら聞けないMaven – コンテナのビルドと一緒にpushもMavenでしたい。
「今さら聞けないMaven – コンテナも一緒にビルドしたい。テスト実行前にコンテナを起動したい」ではMavenを使ったコンテナイメージのビルド方法を説明しました。今回は前回と同じfabric8のdocker-maven-pluginによるもう一歩進めた使い方としてコンテナイメージのタグ付けとコンテナレジストリへのpushをMavenで行う方法を紹介したいと思います...
記事を読む今さら聞けないMaven – コンテナも一緒にビルドしたい。テスト実行前にコンテナを起動したい
Javaの開発ではMavenなどのビルドツールでビルドやテストの手順を定義し実行するのが一般的ですが、コンテナも一緒にビルドしたいなぁと思うときはありませんか?また、マイクロサービスの普及に伴ってREST通信を行う処理が多くなってきましたが、REST通信部分のテストは手間が掛かるので、いっその事、スタブにコンテナを使いたいけど、テスト実行前にコンテナを起動するにはどうしたらいいんだろう?など...
記事を読む今さら聞けないMaven - JUnit5のテストクラスがなぜか実行されない
JUnit5のテストクラスをEclipseなどのIDEからは問題なく実行できるのにMavenコマンドから実行するとなぜかテストクラスが検出されず実行されなくなる。そんなお困りの事象と対処方法について今回は説明します。とりあえずどうすればいいかだけ教えて!という方は対処からどうぞ。 --> 今さら聞けないMavenMavenが誕生してから早20年ですが、開発で使っていると未だにハマってしまうことやコレってどうやるのだろう?と思うことがあったりします...
記事を読むJUnit5のExtension実装 - テストライフサイクルコールバックと引数の解決
JUnit5がリリースされてから5年近く経ちましたが、皆さんはもう乗り換えましたか?私も遅ればせながら1年くらい前から本格的に使い始めましたがJUnit5便利ですよね。@Nestedのテストのカテゴリ化や@ParameterizedTestによるパラメタライズドテストなどJUnit5から入った便利な機能はいくつもありますが、その中でも筆者が特に気に入っているのはExtensionによるテストライフサイクルコールバックの拡張と引数の解決です...
記事を読むHelidon Tips - MicroProfile RestClientを使ったRESTリソースのJUnitテスト
HTTPプロトコルを用いた結合レベルのRESTリソースのテストはどのようにやられていますか? クライアントからE2Eテストでドカンと一緒に確認でしょうか?それともRESTリソースを呼び出す疑似クライアントプアプリを作成して実施でしょうか?あるいは真面目にやっていないとかでしょうか?いずれにせよHTTPレベルでRESTリソース(REST API)に対するテストを細かくやろうと思った場合、それなりに手間は掛かると思います...
記事を読む