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でweld-junitを使ったら思ったように動かなかった話
Search
kazusato
September 06, 2019
0
140
Kotlinでweld-junitを使ったら 思ったように動かなかった話
2019/9/6 JJUG LT
kazusato
September 06, 2019
Tweet
Share
More Decks by kazusato
See All by kazusato
【RSGT2018】ウォーターフォール 大規模プロジェクトの中で スクラムでチーム運営をやってみた
kazusato
0
2.2k
Featured
See All Featured
It's Worth the Effort
3n
183
28k
Statistics for Hackers
jakevdp
796
220k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Fireside Chat
paigeccino
34
3.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
For a Future-Friendly Web
brad_frost
175
9.4k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
97
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Code Review Best Practice
trishagee
65
17k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Speed Design
sergeychernyshev
25
670
Transcript
Kotlinでweld-junitを使ったら 思ったように動かなかった話 @kazusato 2019/9/6 JJUGナイトセミナーLT大会
タイトル「未定」で申し込んでいて、もともとは別の話 をしようと思ってました。 が、LTタイトルの一覧を見てびっくり。 ネタがかぶってる・・・
ほかに話せるネタあるかな??? ・jibでコンテナビルドしてはまった話 ・KotlinでCDIのテストを書こうとしてはまった話 ・・・どっちもニッチな話題だなあ。。。 LTだし、まあいいか。 というわけで、KotlinでCDIのテストを書こうとしては まった話をします。
サーバーサイドKotlinだと、KtorみたいなKotlin固有のフ レームワークを使うか、Spring Bootを使う、というケー スが多いと思います。 が、ちょっと身近にJava EE(JAX-RS)で書かれた資産 がそこそこある関係で、Kotlin+JAX-RSでコードを書い てました。 Java EEなんでCDIを使っていて、デプロイせずにテスト
したいよなーということで、weld-junitを使おうとしまし た。
weld-junit The primary goal of this project is to provide
simple and fast tools for CDI unit/component testing. The tools are implemented as JUnit 4 and JUnit 5 extensions. Supports Weld 2.4 (CDI 1.2) and 3.0 (CDI 2.0).
最初はWeldJunit5Extensionを使ってみた Javaのサンプルコードを見ながら、Kotlinで書いてみた。
しかし・・・動かない!!! インジェクションされない! (メッセージに出ているのはほかのクラスだけど、そもそもインジェクショ ンが機能してない)
なんで? いくら考えてもわからないので、とりあえずもう一つの方法を試した ら・・・ 動いた!
というわけで、テストはなんとかなったんですが、なんか気持ち悪い。 ちなみに、Javaで書くと当然動く。
なんで? バイトコードを見てみると・・・ Java Kotlin なんだこれ?
コンパイラーのソースを読んでみたら・・・