テスト
今回は Matcher 型もしくはそれに類する型の実装クラスを作成して、検証文(should を含む文)の独自の述語を作る方法を見ていきます(目次)。 『JUnit 実践入門』に沿うなら前回の型クラスの話よりこちらを先にやるべきだった気もしますが、書いてしまった…
前回までで ScalaTest に定義済みの Matcher を見てきましたが、今回と次回で独自の検証を行う方法を見ていきます(目次)。 検証方法の拡張には大まかに分けて2つあり、1つは JUnit のように(ScalaTest の)Matcher トレイトもしくはそれに類するトレイト…
さて、今回で ScalaTest の基本的な Matcher は完結(目次)。 扱うのは他の Matcher を組み合わせる論理演算と、ちょっとメタプログラミングっぽい(※個人の感想です) Matcher たち。記事の内容 論理演算 JavaBeans パターンマッチング コード断片 参考 Sc…
前回に続き、今回も ScalaTest に定義済みの Matcher を見ていきます(目次)。 今回扱うのはコレクション関連の Matcher です。Scala のコレクションは Java のコレクションとは別の型ですが、ScalaTest のコレクション関連の Matcher はどちらも同じように…
今回から何回かにわたって ScalaTest の Matcher による検証方法を見ていきます(目次)。 JUnit の assertThat に対応するものですが、Scala の括弧省略や暗黙の型変換によって通常の英文のように書くことができます。 日本人にとってはそんなにありがたく…
前回は hamcrest-library (バージョン1.3) に定義されている Matcher をザッと見てみましたが、今回は独自の Matcher (カスタム Matcher)を実装する方法を見ていきます。 よく考えると(別に考えなくても)カスタム Matcher は JUnit のみで作成できて ham…
この記事では Hamcrest が提供する JUnit の拡張ライブラリである hamcrest-library を見ていきます。 当初「ScalaTest も『JUnit 実践入門』もまとめて相手してやんよ」シリーズの一環で hamcrest-library を試してたんですが、ちょっと Scala/ScalaTest か…
今回は JUnit と ScalaTest で提供されているアノテーションを見ていきます(目次)。 加えて ScalaTest でテストをスキップする方法も見ていきます。この記事の内容 JUnit のアノテーション ScalaTest のアノテーション ScalaTest の Ignore 参考 『JUnit …
今回はテストコードを書く上で念頭に置いておきたい概念、ステップなど(目次)。 詳しくは『JUnit 実践入門』本文参照。 ここではコードを中心に機械的な話だけ。この記事の内容 テスト対象 SUT 4フェーズテストと GivenWhenThen トレイト 参考 『JUnit 実…
今回はちょっと『JUnit 実践入門』から外れて、ScalaTest (もしくは Scala)特有の機能について見ていきます(目次)。 ScalaTest User Guide で飛ばした話の回収です。この記事の内容 DiagrammedAssertions コード断片のコンパイル TripleEquals 「===」 …
今回は「テストコードの記述」を見ていきます(目次)。この記事の内容 テストクラス テストケース 基本的なアサーション 参考 『JUnit 実践入門』 1.4 ScalaTest User Guide 『Selecting testing styles 』 『Defining base classes for your project』 『W…
Scala コード書いててそろそろキチンとテストもしないといけないなぁと思い ScalaTest のユーザーガイドを読んでたんだけど、簡単なお試しコード書かないとよく分からんなぁということで、積ん読状態になってた(というより、いつの間にか本棚にキチンと直し…
Java/Groovy のテスティング・フレームワーク Spock の使い方をあれこれ調べてみました。 まぁ、Gradle 使えるならそれに越したことはないですが、なんとなく Maven3 やコマンドラインからの使用方法も試してみました。どうも Maven3 から GMaven が Groovy …
いや、知ってましたよ、「SBT」が Simple Build Tool の略だって。 とは言いつつ、sbt のサイトには何かの略だとは書いてないっぽいね。 まぁいいや。最近ちょいと Scala をイジってみようと思い勃ったんですが、大したプロジェクトを作るわけでもないのにビ…
前回の記事にいくつか補足。 assertEquals() メソッドの引数の順序 org.hamcrest.CoreMatchers クラス Assert#assertThat() と Is#is() で Class オブジェクト同士の equals 評価はできない!? assertEquals() メソッドの引数の順序これは JUnit 4.x だけに関…
拙者、未だに JUnit 3.x 系のテストをしてるので、ちょっと 4.x 系のテストコードに慣れようと 4.x 系で使えるアサーション方法を調査。 3.x から 4.x に移行する場合は org.junit.Assert クラス に定義されている static メソッドを使うのがスムーズなんだ…