アーシの毎日インプット

毎日1つ以上学習する。学習した内容を公開する。を目標に自分のスキルアップを目指します。

Java

【JUnit】containsでテストを楽に

JavaでJUnit5を使用しているテストのとき、ログ出力機能で私が定義した要素以外も出力されるとき、私が定義した内容だけ検証する方法はないかと思い、ちょこっと調べてみました。 今回はあらかじめcontainsを使ったテストができるはずだと思って調べたらやっ…

【Java】直接配列を引数に渡す

Javaのメソッドを呼び出す際、引数に配列の値を直接書いて呼び出す方法を探しました。 基本的に、下記のような実行対象メソッドがある時 void sampleA(String args) { 処理 } 一般的には変数に配列の値を入れてから呼び出すことが多いです。 String ary = {"…

StackOverflow

先日、Java開発のテストをしていたらStackOverFlowエラーが発生しました。 StackOverFlowというとシステムエンジニアの中では圧倒的な情報量のQ&Aサイトが思い浮かぶかと思いますが、 ja.stackoverflow.com エラーの種類としてもしっかり存在します。 ちなみ…

【JUnit】Captorで途中の値を取得する

JUnitでテストを行う際、MockitのCaptorという機能で処理の途中で他のメソッドへ渡す引数の値を取得することができるということを知りました。 処理の途中で文字列やDTOを構築し、戻り値として返却しないメソッドで、どのような値を構築できたかをテストする…

【Java】JUnit5のガイド

今まで仕事における単体テスト工程を進めるために漫然とJUnit5を使ったテストのやり方を調べていましたが、一度しっかりと体系的に学びたいと思い、ユーザーガイドを読んでみました。 JUnit 5 ユーザーガイド 雑多に調べていただけでは分からなかったことが…

【Java】Gradleが気になって

直近、私が働いているJava開発ではビルドツールにGradleを使用しています。 今まで私が携わってきたJava開発でのビルドツールは基本的にMaven、たまにAntを使うくらいだでした。 正直、Gradleというビルドツールを4月まで知りませんでした。 とはいえ、Java…

【Java】JUnit5の基本

ゴールデンウィーク中にJUnitについて学びたい! 最近はJUnit5が主流で、今まで私が携わってきたJUnit4から結構大きく変わっているようです。 今まで当たり前に使っていた機能が結構非推奨になっており、逆にどんなことができるのか・・・ 2つほど役立ちそう…

【Java】@Spyでテストクラスの一部メソッドをモックする

JUnitのモックのお話です。 基本的にJUnitを使ったテストでは、下記のようにテスト対象のクラスに、そこから呼び出されるクラスのモックを注入(inject)します。 public ClassATest { @Injectmocks ClassA aCls; @Mock ClassB bCls; (以下略) でも、クラス単…

【Java】Mockitって体系的にまとまってる記事が見つからない

最近Javaの単体テストをするためにMockitについて結構調べているのですが、インターネットで体系的にまとまってる記事を見つけられません。 Mockitで検索すると、最初の記事に今は非推奨となっている機能を使った説明がでてきます。 例えるなら、「総理大臣…

【Java】知ってるMock古くなってた

久しぶりに仕事でJavaのPTソースを書いているアーシです。 JavaのPTというとJUnitとMockですが・・・ 私の知っているMockは古くなっていました。 使えると思っていたメソッドが非推奨メソッドになっていたりします。 最新の技術に追いつけるよう頑張ります・…

【Java】String.valueOfで環境差異のバグを引いた話

結論からいうと、Javaでは型定義はしっかりしましょうというお話です。 先日、私の本職の方でJavaを使用したシステム開発でちょっとした問題が起こりました。 単体テストでは動作していたプログラムが、結合テストでは動作しなくなる問題です。 上記自体はあ…

【Java】ExceptionのStackTraceをStringとして扱う

Javaで例外が発生した時、そのトレース内容を文字列として保持したい時に使用可能なメソッドを作ってみました。 public String getStackTrace(Exception e) { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); e.printStackTra…

【MyBatis】真面目に入門記事というものを書いてみました

noteにて、真面目にMyBatisの入門記事を書いてみました。 note.com 私がハマった&調べても出てこなかったpureJavaでのMybatis利用に焦点を当てています。 たまには私のシステムエンジニアらしい一面を見せるとともに、私もこういう記事を書けるんだよという…

Jakarta EE

本業はシステムエンジニアのアーシです。 Jakarta EEで環境構築をしたいという話があがってきました。 Jakarta EE!? なにそれ知らない。 と思って調べてみたのですが・・・ Java EEが2018年2月からJakarta EEと名前が変わっていたそうです。 Oracle社との…

0002/11/30の理由

JavaのDate型のお話。 プログラミング言語のJavaにはDate型という日付を処理するための入れ物のようなものがあります。 このDate型、実は日付書式でない値を入力するといい感じに解釈してくれるのがポイントです。 2019/12/32と入力した場合は2020/01/01と解…

dokojavaで簡単Java利用

Javaを特別なソフトをインストールせず、簡単に使う方法。 dokojava です。 インターネット上で簡単にJavaに触ることができます。 Javaに触れてみたいなという人も、プログラムを書いてみてどんな動きをするのか確認したい人も、簡単にJavaの実装と実行がで…

Javaのメソッドの上限

Javaの制約で、1メソッドは65535バイトを超えてはいけないんですって。ビルドエラーになります。メソッドを分けるという概念のない初心者ならそもそもそんな量のコードを書けませんし、中級者以上ならメソッドはいくつも作るでしょうから、このエラーには出…

忘れがちな文字⇒数値・数値⇒文字

たまにやろうとするとど忘れしているJavaの基本。 文字を数値に、数値を文字に。 です。厳密は文字列の数値を数値型に、数値型の数値を文字列型に。 ですね。 ひらがなを数値に変換しようとしたらさすがにバグります。文字⇒数値 int i = Integer.parseInt(s)…

【アーシの原点】

【頭を鍛える迷路集】


スポンサードリンク