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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
120
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.2k
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
240
JavaDoc 再入門
nagise
0
320
AIチームを指揮するOSS「TAKT」活用術 / How to Use “TAKT,” an OSS Tool for Orchestrating AI Teams
nrslib
6
880
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
180
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
120
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
5
4k
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
4.9k
AI駆動開発で崩れていくコードベースを立て直す
kyoko_nr_nr
1
450
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
230
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
2
560
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.5k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
200
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Odyssey Design
rkendrick25
PRO
2
690
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Site-Speed That Sticks
csswizardry
13
1.2k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
270
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