Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
KotlinのUnitTestの事例
Search
yasu-yamasaki
October 28, 2022
Programming
440
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
840
Other Decks in Programming
See All in Programming
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
4.8k
パスワード再設定メールのURLについて知っておこう
uyuki234
0
150
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
470
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
110
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
480
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
490
最近”作らせてる” ローカルAIアプリの話
akit37
0
460
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
370
パーソナライズPodcastを作った話
repunit11
0
140
R8 の設定見直しでアプリサイズ削減
andpad
0
210
Event is what happens
moro
2
440
Kotlinの15年とServer-Side Kotlin
n_takehata
1
140
Featured
See All Featured
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
260
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
エンジニアに許された特別な時間の終わり
watany
109
250k
sira's awesome portfolio website redesign presentation
elsirapls
0
450
New Earth Scene 8
popppiees
4
2.7k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Speed Design
sergeychernyshev
33
2.2k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Google's AI Overviews - The New Search
badams
0
1.6k
Between Models and Reality
mayunak
4
490
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
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