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
150
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.3k
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
53
7.7k
Bash Introduction
62gerente
614
210k
Designing for humans not robots
tammielis
253
25k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
Unsuck your backbone
ammeep
671
58k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
Visualization
eitanlees
146
16k
Balancing Empowerment & Direction
lara
1
400
Measuring & Analyzing Core Web Vitals
bluesmoon
7
500
Why Our Code Smells
bkeepers
PRO
337
57k
For a Future-Friendly Web
brad_frost
179
9.8k
How to Ace a Technical Interview
jacobian
277
23k
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 なんだこれ?
コンパイラーのソースを読んでみたら・・・