日々常々

ふつうのプログラマがあたりまえにしたいこと。

JUnit

JUnitのNestedなMethodSourceの注意点

JUnit 5.8.1 Java 17.0.1 IntelliJ IDEA 2021.2.3 JUnit5での @MethodSource のおさらい JUnit5にはパラメタライズドテスト用の @ParameterizedTest があり、様々な方法でパラメーターを与えられます。 その中でもパラメーターにある程度柔軟性が欲しい場合…

JUnit 5の拡張機能を完全にマスターしたぃ

本日9/19の関ジャバ'19 9月度でJUnit 5のExtensionの話をしました。 スライド JUnit 5.5.2 のUser Guide を合わせてご参照ください。なお5.3ならoohiraさんの日本語訳もあります。とても助かってる。 ちなみに表紙で言及してるBtoWは ゼルダの伝説 ブレス オ…

#jjug_ccc 2016 FallでJUnit5の話をしてきた

今年の目標を「1ヶ月に1エントリ以上のペースでブログを書く」にします。 これで9エントリになるので後3ですね。2012年12月は1ヶ月で34エントリ書いてるので、今の私と彼が同一人物なら余裕なはず。 さて、2016-12-03のJJUG CCC 2016 Fallで話させてもらいま…

JUnit4.12に追いつこう(周回遅れで)

JUnit4.12がでました!……2014/12/4に。なんと6ヶ月経ってる。まぁいいや。 JUnit 4.12の新機能紹介まとめ / うさぎ組(2014/8/5) JUnit 4.12から入ったTestRuleを軽く見てみる / 裏紙(2015/2/28) JUnit4.12時代のParameterized Test / mike-neckのブログ(2015…

JUnitの各要素の実行順

仕組みとか説明するのも面倒だし、ソースを出すのも手間だし、論より証拠って便利な言葉に乗っかって。こんなテストがあったとする。ありえないけど。ないけど、まぁあったとする。 @Grab('junit:junit:4.11') import org.junit.* import org.junit.rules.* …

NUnitのTestCaseが羨ましいのでJUnitでできるようにしてみた

車輪の再発明万歳。 https://github.com/irof/junit-case-runner こんな感じ。(若干予定含む) @Tests({ @Case({"str1", "str1"}), @Case(value = {"str2", "str2"}, name = "hoge"), @Case(value = {"str3", "str3"}, expected = Exception.class), @Case({"…

関ジャバでJUnitな話をしたので #kanjava #junitbook

関西Javaエンジニアの会'13 7月度 - connpass 関西Javaエンジニアの会'13 7月度を7月31日に開催しました。6月に続いて二ヶ月連続ですね。三ヶ月連続は無いので心配しないでくだ……あ、8月にはJavaEEと言うかGlassFishと言うか、あれがありますね!(「関ジャ…

日本語テストメソッド名の検討フロー

テストメソッド名を日本語で書きたい。実線がYes, 点線はNo. 補足 テストコードが納品物になってないとかで軽視されている場合は、自身に対するわかりやすさ重視で日本語。 テストコードの価値がそれなりに認められている場合は、自分以外に少なくとももう一…

JUnit4の各バージョンでの変更の整理

メモです。たまに更新するかもです。 4 Annotation化 4.4 assertThat, Theories 4.7 release notes @Rule 個人的にJUnitで最も重要なもの。 4.8 release notes Categories テストにラベリングできる。今まではクラス/メソッド名で縛るしかなかった。 4.9 re…

PowerMockとJUnitのRuleを使うときのメモ

少し試行錯誤してしまったので書いときます。この情報はバージョンによって古くなる可能性が十分にあります。 PowerMock: 1.5 Mockito: 1.9.5 junit: 4.11 short answer PowerMockRule は使わず PowerMockRunner を使いましょう。 PowerMock? powermock - Po…

JUnitのCategoryさんとGradleでの実行(1.6)

※Gradle1.6はまだリリースされてません。MavenとJUnitのCategoryなエントリを書きつつ「Gradle対応してないんだよなー。自分でアノテーション漁るの書くかなー」とか思ったんですが…… GradleがCategoryに対応すると聞いて gradleさんも1.6からCategory対応ら…

JUnitのCategoryさんとMavenのintegration-testでの実行

詳しいことは JUnit実践入門 の 10章 カテゴリ化テスト を読んでください。 ざっくり言えば Category アノテーション 付けてテストをカテゴライズできるよひゃっほーって話。*1JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)作者: 渡…

テストをparallelに実行させる

GradleとMavenでテストをparallelに実行させてみたのをGitHubに置いときます。 irof/ParallelTest · GitHub この程度のは「わざわざ書かなくても」とも思ったんだけど、メモみたいなもんですし。 あ、maven-surefire-pluginを2.14にしたらテスト途中にもログ…

DbUnitのためのRuleから、RuleChainとかその辺の話

JUnit実践入門の「第12章 データベースのテスト」でも取り上げられているDbUnitさんのRuleから派生して、RuleとかRuleChainとかその辺をちょっと書いておきます。JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)作者: 渡辺修司出版社/…

JUnitでテスト名の制約を取っ払う

2020-06-11追記 本稿の対象はJUnit4です。JUnit5で同等のアノテーション`@DisplayName(value)` が追加されているため、このような小細工は必要ありません。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.t…

junit-4.11.jar が単独で使えない

寂しがりだから Hamcrest と一緒に使ってあげてね。 やってみる こんな風に書いて。 import org.junit.*; import static org.junit.Assert.*; public class HogeTest { @Test public void hoge() { fail("しぱーい"); } } こうして。 $ javac -cp junit-4.11…

Theoriesさんの可読性をなんとか

mike、mikeなるままに…: Spockで例外のテスト ということなので、いろふさん早くSpockについてブログ書いて下さい。 mike、mikeなるままに…: Spockで例外のテスト とか言われたのでTheoriesネタで書きます。 Theoriesさん? JUnit実践入門 8章 パラメータ化…

GroovyでJUnitなテストを書くときの注意点……なんて無かった #gadvent2012

Groovy!!(挨拶) G* Advent Calendar 2012 の13日目でございます。 前日: SpockでビルトインされているExtensionsとかそのへん - Yamkazu's Blog / @yamkazuさん 翌日: groovy.lang.MissingPropertyException*1*2 http://piyopiyoducky.net/gadvent2012/ / …

寝坊対策にTimeoutを設定する

『JUnit実践入門』写経・実践会 in 大阪 - connpass を開催しました! 寝坊しました こんなテストになってたんですよ。 @Test public void 起きられる() throws Exception { sut.wakeUp(); assertThat(sut.isAwake(), is(true)); } 「どんなに時間がかかって…

JUnit実践入門の感想とJUnit依存具合と読書会と #junitbook

JUnit実践入門が 2012/11/21 に発売されました。献本ありがとうございます! 初めてレビューもさせて頂きまして、執筆が進むにつれ話題に上げたいなぁとウズウズする毎日が続いておりました。最初に原型っぽいものを見せて頂いたのが 2011/11/23 で、丁度一…

JUnit4.11でassertThatの失敗メッセージが良くなると聞いて

JUnit 4.11-beta-1でオレオレMatcherがもっと素敵に - 裏紙 なんか変わるみたい。 挨拶文パクリ こんばんは! MavenセントラルにJUnit 4.11-beta-1が来てたことにようやく気が付きました! で、早速 build.gradle に dependencies { testCompile 'junit:juni…

assertThatのMatcherとHamcrest

JUnit API探訪:Assertクラス/assertThatメソッド - Shinya’s Daily Report人のブログに乗っかってなんか書くパターン。 そしてこれらとは別にorg.hamcrest.Matchersというクラスも存在。これが一番提供メソッドも多いようなので今回はこちらのクラスメソッ…

JUnitのテストメソッド名に日本語を使ったときの問題と対処

メソッド名を日本語にする話 - 日々常々とかにも書いてるんですが、テストメソッド名に日本語を使うのはザラです。むしろ使わない理由がありません。こんなのですね。 import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertTh…

assertEqualsよりassertThatが好きなわけ

assertEqualsよりassertThatが好きなのは、Matcherもあるけど、引数の順番に悩まないからです。英語として云々なんてどうでもいい。。。。2012-07-13 00:07:14 via YoruFukurou元ネタ*1は「xUnitよりRSpecがいいとか言ってたひとは英文ぽいのがいいとか言っ…

GradleでEnclosedのテストが二回実行されるんだ

特に理由はないんですけどGradle良い気がするので手を出そうと思い始めて盛り上がって下がってを繰り返してる今日この頃です。今日この頃が数ヶ月続いてますけど大丈夫です。で、まー、JavaなアレをGradleでアレしてるわけなんですけど、ふつーにEnclosedな…

TestNGのテストコードをJUnitで実行する

ふぐ鍋で忘年会と言う事で、例により開始5時間前くらいに集まって雑談してました。例により無駄に濃い内容でしたが、その中でも気を引いたのがうらがみさんのお話で、O/Rマッパーのそれぞれに対してテストコードを書かれてました。欲しくなったので*1鍋食い…

JUnitの知識を棚卸し #JJUG

Java Advent Calendar 2011の16日目です。 前:JSFUnitでテストしよう! | Kokuzawaの日記 次:JavaEE使ってウェブアプリケーションつくろうよ - 水まんじゅう 書いてること JUnit の話です。使い始めからちょっとだけ踏み込んだ辺りですかね。ちょっとだけ…

日本語でテストを書く

「JUnit のテストメソッド名は日本語のが良いんじゃね?」と思う今日この頃。実際にテストメソッド名を全部日本語にしたら、判りやすい気がしなくもない感じでした。そうなると assert も日本語にしたくなりました。無いかなーと思って検索したら jassert が…

assertThat で Collection.isEmpty() を判定させたい

昔は assertTrue や assertEquals を使っていたのですが、時代は変わって assertThat が出来ています。使うことでのメリットは"テストコードの可読性向上"です。散らかりがちになるテストコードの可読性に関わるならば、使わない手はありません。 初めて見た…

JUnit のテストメソッドを複数スレッドで実行する

JUnit4.8 のテストは、ぐるぐる巻きにされた Statement を転がすゲームです。ご存知 @Before, @After, @BeforeClass, @AfterClass も @Test も @Rule も全部 Statement に変換されて、それらの Statement でテストメソッドを丁寧にラッピングしてから実行し…