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でもテスト書きたい #Android_Testing_BC
Search
Taro Nagasawa
June 22, 2016
Programming
1
850
Kotlinでもテスト書きたい #Android_Testing_BC
Android Testing Bootcamp #2 (
http://android-testing-bootcamp.connpass.com/event/31636/)で発表したスライドです
。
Taro Nagasawa
June 22, 2016
Tweet
Share
More Decks by Taro Nagasawa
See All by Taro Nagasawa
Android開発者のための Kotlin Multiplatform入門
ntaro
0
740
Kotlin 最新動向2022 #tfcon #techfeed
ntaro
1
2.2k
#Ubie 狂気の認知施策と選考設計
ntaro
13
13k
UbieにおけるサーバサイドKotlin活用事例
ntaro
1
1.1k
KotlinでSpring 完全理解ガイド #jsug
ntaro
6
3.5k
Kotlinでサーバサイドを始めよう!
ntaro
1
990
Androidからサーバーサイドまで!プログラミング言語 Kotlinの魅力 #devboost
ntaro
5
2.8k
Kotlin Contracts #m3kt
ntaro
4
4.1k
How_to_Test_Server-side_Kotlin.pdf
ntaro
1
510
Other Decks in Programming
See All in Programming
Nuances on Kubernetes - RubyConf Taiwan 2025
envek
0
170
可変性を制する設計: 構造と振る舞いから考える概念モデリングとその実装
a_suenami
10
1.8k
CLI ツールを Go ライブラリ として再実装する理由 / Why reimplement a CLI tool as a Go library
ktr_0731
3
1.1k
AHC051解法紹介
eijirou
0
560
Gemini CLIの"強み"を知る! Gemini CLIとClaude Codeを比較してみた!
kotahisafuru
3
1.1k
Scale out your Claude Code ~自社専用Agentで10xする開発プロセス~
yukukotani
9
2.2k
コーディングは技術者(エンジニア)の嗜みでして / Learning the System Development Mindset from Rock Lady
mackey0225
2
490
tool ディレクティブを導入してみた感想
sgash708
1
100
GUI操作LLMの最新動向: UI-TARSと関連論文紹介
kfujikawa
0
940
Introduction to Git & GitHub
latte72
0
110
ワープロって実は計算機で
pepepper
2
1.3k
JetBrainsのAI機能の紹介 #jjug
yusuke
0
200
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Mobile First: as difficult as doing things right
swwweet
223
9.9k
The Cost Of JavaScript in 2023
addyosmani
53
8.8k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
The Invisible Side of Design
smashingmag
301
51k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.4k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Transcript
Kotlinでもテスト書きたい 2016-06-09 Android Testing Bootcamp #2 @ngsw_taro
Kotlin • JetBrains開発のJVM言語 • 2011年7月に登場、2016年2月に正式リリース • Android開発にも使えて最近注目を集めている
まとめ • knit: JUnitをKotlinらしく使えるよ! • kmockito: MockitoをKotlinらしく使えるよ! • kaptAndroidTest: テストでkapt使えるよ!
自己紹介 • たろー @ngsw_taro • プログラマー@エムスリー株式会社 ◦ Android, Kotlin, Java,
Scala, Rubyなど • Kotlinエバンジェリスト(JetBrains黙認) ◦ 日本Kotlinユーザグループ代表 ◦ Kotlinスタートブック 夏に発売! • やすべえとディズニーが好き
1. knitを使う
KotlinでJUnitする // JUnit assertThat(actual, `is`(expected))
KotlinでJUnitする // JUnit assertThat(actual, `is`(expected)) ダサい
knit(ニット)を作った • JUnitの薄いラッパー • 今すぐダウンロード github.com/ntaro/knit
knitを使うと // knit actual.should be expected
やってることは単純 actual.should be expected assertThat(actual, `is`(expected))
2. kmockitoを使う
KotlinでMockitoする // Mokcito val repository = mock(Repository::class.java) `when`(repository.findAll()) .thenReturn(users)
KotlinでMockitoする // Mokcito val repository = mock(Repository::class.java) `when`(repository.findAll()) .thenReturn(users) ダサい
ダサい
kmockito by @sys1yagi • Mockitoラッパー • 今すぐダウンロード github.com/sys1yagi/kmockito
kmockitoを使うと // Mokcito val repository = mock<Repository>() repository.findAll().invoked .thenReturn(users)
3. kaptAndroidTestを使う
kapt // product kapt 'com.google.dagger:dagger-compiler:2.4' // test kaptAndroidTest 'com.google.dagger:dagger-compiler:2.4' •
KotlinでAnnotation Processingするためのツール • Dagger2とか
おまけ
予約語エスケープ、テストで便利だった class `be - expected` { @Test fun `does nothing
when target equals expected`() { sut be java.lang.String("Kotlin").toString() } @Test(expected = AssertionError::class) fun `throws error when target does not equal expected`() { sut be "kotlin" } }
まとめ • knit: JUnitをKotlinらしく使えるよ! • kmockito: MockitoをKotlinらしく使えるよ! • kaptAndroidTest: テストでkapt使えるよ!
ご清聴 ありがとうごじました