Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
KotlinのUnitTestの事例
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
yasu-yamasaki
October 28, 2022
Programming
430
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
KotlinのUnitTestの事例
yasu-yamasaki
October 28, 2022
More Decks by yasu-yamasaki
See All by yasu-yamasaki
JavaエンジニアがKotlin_SpringでWebアプリケーションを作った話__1_.pdf
yasuyukiyamasaki
1
820
Other Decks in Programming
See All in Programming
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
230
symfony/aiとlaravel/boost
77web
0
120
Agentic UI
manfredsteyer
PRO
0
220
はてなアカウント基盤 State of the Union
cockscomb
1
1.3k
ランチタイムLT会3周年!ランチタイムLT会を3年間続けられたお話
y0hgi
1
130
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.6k
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
140
act1-costs.pdf
sumedhbala
0
160
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
240
Oxcを導入して開発体験が向上した話
yug1224
4
370
dRuby over BLE
makicamel
2
400
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
37
7.4k
The browser strikes back
jonoalderson
0
1.4k
Building an army of robots
kneath
306
46k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
210
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
New Earth Scene 8
popppiees
3
2.4k
Building AI with AI
inesmontani
PRO
1
1.1k
The SEO identity crisis: Don't let AI make you average
varn
0
510
Skip the Path - Find Your Career Trail
mkilby
1
160
Transcript
KotlinのUnitTestの事例 2022年10月28日 Finatext Ltd. 山﨑 康行
Copyright © FINATEXT. All rights Reserved. 1 自己紹介 山﨑 康行
@yasu_yamasaki ( 2018/12〜 Finatext ) • バックエンド担当 • JavaでのWebアプリケーション開発歴:8年 • Kotlin歴:4年 • フロント(Vue.js)とインフラもやります
Copyright © FINATEXT. All rights Reserved. 2 今日話すこと • KotlinによるWebアプリケーションUnitTestの事例
◦ 使ってるライブラリはJavaと大きく変わらない ◦ Kotest使うとJUnitより簡潔にテストがかける ◦ Javaでも使えるTestをサポートするライブラリの紹介
Copyright © FINATEXT. All rights Reserved. 3 システムの概略
Copyright © FINATEXT. All rights Reserved. 4 使用している主なライブラリ カテゴリ ライブラリ
Java Build Gradle ◦ Web Framework Ktor ☓ HTTP Client OkHttp ◦ OR Mapper Exposed ☓ Connection Pool HikarCP ◦ DB Migrate Flyway ◦ Log Logback ◦ Container Build jib ◦ Testing Framework Kotest ☓ Ktor Test ktor-server-tests ☓ Mock (Test) MockServer ◦ Container (Test) Testcontainers ◦
Copyright © FINATEXT. All rights Reserved. 5 UnitTest時の構成
Copyright © FINATEXT. All rights Reserved. 6 Kotestとは • KotlinのTesting
Framework • OSS • Kotlin公式のものではない ◦ 公式で紹介されてるのはJUnit • KotlinのSyntaxを活用することで、JUnitより簡潔にTestを書ける • やれることは概ねJUnitと同じ • https://kotest.io/
Copyright © FINATEXT. All rights Reserved. 7 サンプル
Copyright © FINATEXT. All rights Reserved. 8 Kotestを使ったテストの書き方のサンプル
Copyright © FINATEXT. All rights Reserved. 9 ケースのネストが簡単にできます
Copyright © FINATEXT. All rights Reserved. 10 パラメータ化テストが簡単にできます
Copyright © FINATEXT. All rights Reserved. 11 Javaでも使えるテストをサポートするライブラリの紹介 目立たせる
Copyright © FINATEXT. All rights Reserved. 12 Javaでも使えるテストをサポートするライブラリの紹介 • MockServer
◦ モックサーバを簡単に建てられる ◦ JUnit上で建てれば、テスト対象からのRequestのAssertも簡単にできる
Copyright © FINATEXT. All rights Reserved. 13 Javaでも使えるテストをサポートするライブラリの紹介 • Testcontainers
◦ JUnitでDockerContainerを操作するためのライブラリ ◦ Javaでembedして動かせないソフトウェア(PostgreSQLとか)とのテストを するときに活用できる
Copyright © FINATEXT. All rights Reserved. 14 さいごに • 質問・ご意見歓迎です
• 個別のご質問があれば @yasu_yamasaki 宛にご連絡ください • 資料のURLもTwitterで共有いたします • Finatext では一緒に働く仲間を募集中です ◦ https://finatext.notion.site/finatext/Finatext-cd4ff36fb8bd4aa78a7835565c 655396
Copyright © FINATEXT. All rights Reserved. 15