きり丸の技術日記

技術検証したり、資格等をここに残していきます。

テスト

【Java】よく使うassertThatのメソッド集【AssertJ】

「assertThat」と検索すると私のブログに引っかかる人がいるようなので、この記事を書きました。ただ「AssertJ」と検索すると、たくさん有用な記事も見つかります。 なので、この記事は「AssertJ徹底解説」ではなく、「きり丸がよく使うAssertJのメソッド」…

SpringBootでpropertiesやymlの設定ファイルが読み込めることのテストを書く【Java】

2021/03/31 追記 SpringBoot2.4以降の場合はこちらの記事も参考にしてみてください。 SpringBootではpropertiesファイルやymlファイル(以降、設定ファイル)に、DBのURL等々の環境ごとの変数を記載できます。 設定ファイルの値が目的通り一致していることを…

JestでJSONを比較する(特定の項目を無視する)

「JavaでJSONを比較する記事」を職場のSlackに貼ったところ、フロントでもJSONをいい感じに比較したいという依頼が来ました。 Jsonの比較 下記のRequestBodyを比較するようにする。 const response = { "animals": [ "gorilla", "human" ], "generate_date":…

【Java】【テスト究極系】動的にテスト対象を増やして、アサーションルーレットを回避する

過去にJavaのテストについていろいろ書きました。 パラメタライズドテスト、assertEqualsとassertThatとの比較等々…。 色々と学んだのですが、ダイナミックにテスト項目を増やす方法が分からず、苦汁をなめながらアサーションルーレットなテストを書いていま…

【Spring】TestExecutionListnerを継承した自作アノテーションでSpringのテストセットアップを快適にする

テスト設計というのは非常に難しいです。 ちょっとでも見誤ると、すぐにテストができない設計になってしまい、テストをしないという設計になってしまいがちです。 これを避けるためにTDDを行うのですが、粒度の違うUTとE2Eではテストの設計が違ってくるので…

【Spring】Spring機能使いつつ、テストを高速化する

※ もっと高速化する方法がありましたら教えていただきたいです。 もしくは、高速化するためのリファレンスページ教えてください。 はじめに Springフレームワークは、DI機能を持っており、依存関係を疎にできます。 テストするときは、@SpringBootTestのアノ…

【Java】JavaでXMLを比較する(特定の項目を無視するやり方)

前に、JavaでJsonを比較しつつ、特定の項目を無視するやり方をする記事を書きました。 同様にJavaでXMLを比較しつつ、特定の項目を無視するやり方を調べたので、記事に残しておきます。 環境 Java 下記のどれか org.assertj.core.api.Assertions.assertThat …

JavaでJSONを比較する(特定の項目を無視するやり方)

自分用記事。 JSON比較に手間取ったので、未来の自分に役に立つはず。 なお可能であれば、assertThatのメソッドチェインに加えたいので、もしそっちで比較できることを知っていれば教えてほしいです…。 環境 org.skyscreamer.jsonassert JSONAssertで読み込…

もっともっといいテストが書きたい(AssertAllをもっと使う)

もっともっといいテストが書きたい(AssertAllをもっと使う) 下記の記事を書いて、 「テストで必要なことを全て書いた! あとは、テストに慣れるだけだ!」 と、思ってたのですが、思ったよりもassertAllを使いたい場面が増えてきたので、自分用へのメモを残…

もっといいテストが書きたい(AssertEqualsとAssertThatの検証)

AssertEqualsとAssertThatの挙動の違いがよくわかってないところがあったので検証しました。 検証したくなった理由 個人的にはAssertEqualsで全部行えばいいと思ってました。 assertThatでしかできないことというのは、Equalsよりも弱い検証になりがちなので…

パラメータだけ変えて中身は同じテストをしたい(ParameterizedTest)

Javaでもっといいテストが書きたい! ということで、Junit5のParameterizedTestに注目して調査しました。 正直、どんな機能が眠っているのかよくわかっていないので、もしオススメの機能があれば教えていただきたいです。 なお、結論については、自分の主観…