kagamihogeの日記

kagamihogeの日記です。

テストコード

Selenium Gridをdockerで使う

Selenium Gridをdockerコンテナでリモートブラウザを起動するやり方で使用する。 ソースコードと手順 docker-compose.yml DockerでSelenium Gridを構築してクロスブラウザテストを自動化するを参考にdocker-compose.ymlを作成する。 version: '3.8' services…

WebTestClientによるintegration testの記述

spring-bootで作成するweb-apiのintegration test(以下IT)を記述するのにWebTestClientが使える。これは内部的にWebClientを使用する。同様にTestRestTemplateは内部的にRestTemplateを使用する。環境に応じて使い分けになる。今回はWebTestClientによるIT…

spring-boot + MockServer

spring-bootのweb-apiのintegration testでMockServerを使用する。 ソースコード build.gradle springとの連携用のmockserver-spring-test-listener-no-dependenciesの依存性を追加する。 plugins { id 'org.springframework.boot' version '2.6.6' id 'io.s…

spring-cloud-starter-contract-stub-runner(WireMock)によるintegration test

spring-bootで外部アクセスを伴うweb-apiのintegration testを記述する際は何らかのmock serverを必要とする。ここではmock serverにWireMockを使用し、また、spring-bootとWireMockの連携にSpring Cloud Contractを使用する。WireMock関連の記述は6. Spring…

テスト駆動開発

昔、自分がどのようにプログラミングをしているか、を文章に書き起こせるか、という話を同僚としたことがある。それで書いてみようとしたのだが、すぐに行き詰った。最大の壁は自分の思考を文章にすることで、文章は基本的に上から順に読む線形の構造になる…

TestNGのDocumentationを読んで訳した

TestNG使う機会があったのだけど、今まで使ったことがなかった。ので、とりあえずドキュメントの http://testng.org/doc/documentation-main.html 読んでテキトーに訳した。誤字脱字とか表記揺れ(ファクトリだったりファクトリ"ー"だったりする)があるけど…

DbSetupというJavaのユニットテスト用のDBデータ作成ツールのUser Guidをテキトーに訳した

JavaでのDBのテストデータ作成はDbSetupが楽 - Qiita を見て DbSetup をちょっと試してみた。 それで、中々良さげだったのでユーザーガイド(http://dbsetup.ninja-squad.com/user-guide.html)をテキトーに翻訳してみた。 User Guide Don't clean up, prepa…

JUnit実践入門 体系的に学ぶユニットテストの技法

イマサラJUit 4よく知らないんですよね、とは言い出しにくい情勢なので本書を手に取った。さすがに実践入門と銘打たれてるだけあり、明日すぐ使えるような構成になっている。実践的だと感じたのは大きく二つの理由からなる。一つは、JUnit 4の各機能をサンプ…

コンストラクタが private なクラスをモックで差し替えてテストしたかった

最近ようやくテストコードを書くことに目覚め始めました。で、まぁ、とあるクラスをテストしようと思ったが、一部にミドルウェアと通信する箇所があるので、そこはユニットテストのときはなんもしないようにしたかった。DI なんて便利なモノがまだ無い環境な…

レガシーコード改善ガイド

「テストがないコードはレガシーコードだ」のあおり文句が実に眩しい一冊。本書を一言で紹介するなら、リファクタリングの実践書であり、オブジェクト指向プログラミングの参考書であり、テスト駆動開発の教科書である。感想に個人差はあるだろうけど、かな…