• 2019年5月28日火曜日
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/05/

JUnit5のアサーションをグループ化する「assertAll」

JUnit5には「assertAll」というアサーションがある。 これは複数のアサーションをグループ化するものだ。 ユニットテストの本質である、値が期待通りかをチェックする機能ではなく、ソース整理の為の機能であると言える。 用途 出番が来るのは、テスト対象となるリ...
  • 2019年5月27日月曜日
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/05/

JUnit5で例外の発生を検知「assertThrows」

Java開発をやってて泣けてくる のは、Javaには「例外」ってものがあるんだぜ。 if文があって、「Trueの方が正常」「Falseの異常」じゃないんだよ。 True/Falseの考え方はパラメータ的に正しいかどうかでしょ? それとは別にネットワーク断とか予期せ...
  • 2019年5月26日日曜日
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/05/

JUnit5のメソッド名には日本語も使える

小ネタ。 JUnit5のメソッド名には日本語も使えるんだぜ。 こんな感じに。 用途 ショボい話なんだが、JUnitのテストケースを作っていると、メソッド名のネタに枯渇してくるんだよな。 〇〇メソッドのテスト・正常系・下限境界値マイナス1 〇〇メソ...
  • 2019年5月21日火曜日
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/05/

JUnit5でアノテーション「@DisplayName」を使うことで表示名を設定できる

JUnit5からの新登場。アノテーション「@DisplayName」。 公式サイト によると表示名を変える機能だそうだ。 「表示名」って一体何のこっちゃ。 検証してみよう。 ソース まず、試しに「@DisplayName」を使ってみる。 @DisplayNam...
  • 2019年5月20日月曜日
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/05/

JUnit5のアノテーション「@BeforeAll」「@AfterAll」「@BeforeEach」「@AfterEach」

前回 に引き続き、JUnit5の勉強を進めていくぜ。 まずは基本である「@BeforeAll」「@AfterAll」「@BeforeEach」「@AfterEach」だ。 「@BeforeAll」「@AfterAll」「@BeforeEach」「@AfterEach」 ...
  • 2019年5月19日日曜日
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/05/

最新鋭ユニットテストフレームワーク「JUnit5」~インストール編~

ユニットテストによる再帰的テストの重要性が説かれるようになって久しい。 今更それについて記事を書こうなどとは 10年遅い と断ずるのもやむなしなのだが、それでも敢えて再び僕がユニットテストに着眼する気になったのには理由がある。 現場の成熟度の問題 お恥ずかしながら、だ...
  • 2019年5月11日土曜日
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/05/

Pythonでメールを送る時に、本文の宛先と実際に届く宛先が違う

現場でPythonで作ったメール送信プログラムがあるんだが、そこでバグが見つかった。 その内容としては、 本文の載っているメールの宛先と、実際に届いているメールの宛先が違う というものだ。 原因を追ってみたので解説しよう。 基本:メールの宛先は偽装可能 まず根本的な...
  • 2019年5月7日火曜日
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/05/

Javaでクラスパス上のファイルを取得する

普通、Javaでファイルを取得する場合は絶対パスで取得するものなんだけど、偶にクラスパス上のファイルを取得したい時がある。 例えば、JUnitの為にテスト用ファイルを流し込みたい時、チェックアウトしてすぐ動かす為にはクラスパス上にファイルを置いておくのが便利だ。 必要にな...
  • 2019年5月6日月曜日
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/05/

致知 2019年6月号「看脚下」読書感想文

看脚下……、 読めねえし 。 致知も読めない人が多いことを察したらしく、特集の一ページ目の第一行に説明があった。 文字通りの意味としては「自分の足元をよく見る」だけど、本質的には、今、自分が何をするべきかという 天命 をちゃんと見極めろ 、という話のようだ。 致知を読ん...
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/05/

JacksonでJavaオブジェクトとJSON文字列を変換する

Java界ではJSON文字列を取り扱うライブラリは、恐らく「Jackson」か「gson」の2強だろう。 Pythonなんかだと標準でJSON機能を持っているんだけど、Javaの場合は外部ライブラリの導入が必要になる。 だから、ある現場では「Jackson」を使い、ある現場...
  • 2019年5月5日日曜日
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/05/

SpringBootのinstallでエラー [ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.1.4.RELEASE:repackage (repackage) on project AristJavaTemplateBatch: Execution repackage of goal org.springframework.boot:spring-boot-maven-plugin:2.1.4.RELEASE:repackage failed: Unable to find a single main class from the following candidates

「maven install」をしようとしたら、こんなエラーが出てしまった。 [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILU...
  • 2019年5月4日土曜日
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/05/

SpringBootを活用した任意プロパティファイルの読み込み

SpringBootというのは、特に何もしなくてもデフォルトで「application.properties」が読み込まれ、各所にDI(依存性注入)される。 しかし、場合に依っては、全ての外部定義情報が「application.properties」に終結されると保守性という...
  • 2019年5月3日金曜日
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/05/

SpringBootのDI(依存性注入)をシステム日付で説明してやるぜ

SpringBoot……と言うかSpringFramework伝統の必殺技「DI(依存性注入)」だが、これが難しい!! これが分かってるプログラマーなんて滅多におらんぞ!! 僕も手探りで何とかボチボチ使い方程度は……、くらいの理解度だけど、DIとは一体何なのか? それを「...
  • 2019年5月2日木曜日
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/05/

Javaで文字列ハッシュ作成

昨今はセキュリティに対する意識が高まっており、パスワードを平文で保存するなど絶対NGとされている。 それでも 大流出祭りをやらかすサービス もあるが。(;´^ω^`) まあ、最近のフレームワークは「パスワードのハッシュ化作業」を内部で自動的にやってくれることも多いから自分で...
  • 2019年5月1日水曜日
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/05/

SpringBootはバッチでも使用出来るんだぞ

現在、Java界で一番隆盛を極めているライブラリは SpringBoot ではないだろうか? SpringBootは、Java界の金字塔フレームワーク「Spring Framework」の系譜を受け継ぐライブラリで、Spring Frameworkと同じような機能を持ちながら...
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/05/

バッチの二重起動チェックを作成

Javaでバッチが二重起動しないようにするためのチェックは、大抵はファイルで行う。 ファイルを作成し、 ロックを取得 し、ロックが取れればOK、取れなければNGという判定ロジックだ。 基本ソース ロジックの根幹を成す「ロック」は以下で実現出来る。 Fi...
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/05/

オリジナルのExceptionを有効活用せよ

Javaの保守性を向上させるコツの一つに、例外処理がある。 オリジナルのExceptionを作る事例を紹介してみよう。 オリジナルの例外を作る事例 Javaで自分のオリジナルの例外を作るのに適しているタイミング、それは 自分のロジック上、論理的におかしいと言うタイミ...
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/05/

logbackの共通値を変数化する

Javaでログ出力を作る際はlog4jを使うのが主流で、その設定値はlogback.xmlに書くものだ。 TRACE DEBUG INFO WARN ERROR などのログ出力の設定をしていくわけだが、ここでよくあるパータンがある。 ログ出力フォ...
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2019/05/

mainクラスから自分自身のインスタンスを作成する

他人のソースを見ていて凄く疑問に思うことなんだが、もしかして、 自分自身をnewしてインスタンスを作ることは出来ない とでも勘違いしていないか? そんなこと無いからな!! 状況説明 Javaバッチの実行で最初に来るのは「mainメソッド」を持っているクラスだが...