JUnit4ではhamcrestライブラリーが統合されており、伝統的なassertEquals()を使った比較以外に汎用的なassertThat()が使えます。これを使うとより英語的に自然に読めるアサーションを記述できるとされています。しかし、Classクラス同士の比較ができないといった問題もありますし、そもそも日本人にとって便利なのかという疑問もわきます。

私のように昔からJUnitのコードを書くことが習慣となっていると、値の検証はassertEquals(期待値, 実際値)メソッドで行うというというのがずっと常識となっていました。しかし、4年ほど前にリリースされたJUnit4.4以降では、長年親しんできたassertEquals()に加えて、新しくassertThat()と呼ばれる別の検証メソッドが追加されています。この新しい検証メソッドについては、既にいくつかのサイトで説明されています。 http://journal.mycom.co.jp/articles/2007/07/20/junit1/index.html 林檎生活100: JUnit 4.4 の機能,assertThat と Assumptions,Theories について. hamcrestのMatcherメモ - 都元ダイスケ IT-PRESS hamcrest の Co
JUnitをより深く知っていこう。と言う事で本丸JUnitのクラスから幾つか機能を探訪していこうかと思います。 org.junit.Assertクラス Assert (JUnit API) 主なメソッドは以下の通り。 メソッド 説明 assertArrayEquals(arrays expected, arrays actual) 配列同士を比較、イコールである場合true assertEquals(Object expected, Object actual) オブジェクト同士を比較、イコールである場合true assertFalse(boolean condition) 条件がfalseである事を検証、falseの場合true assertNotNull(Object obj) オブジェクトがNullで無いことを検証、Nullでない場合true assertNotSame(Object
Java は Collections.sort があるのに .NET は List 自身が Sort メソッドを持っているのはなぜ? だそうです。あまり疑問でもないです。だってIListはSortないし。比較するならIList - ListでありList - ArrayListでしょう。とはいっても、JavaのArrayListはほとんどList(Javaのほうの)と同じようなものですが、そうなってくるとむしろメソッドがなくて不便!って思ってしまうのはC#脳。 そして何故かスレッドの話は迷走していて不思議。パフォーマンス? んー……。勝手な印象論ですみませんが、1さん(名前を出すのもアレなので1さん、ということにさせてください)はJavaのCollections.sortの性能を勘違いしているんじゃないかな? 配列のコピーを問題にしてるようだけど、Javaの方式はコピー、してますよ。もっと
メソッドの総称型 メソッドのみに総称型を適用した定義を行うことも出来る。[2007-06-12] 戻り値の型の直前に「<仮型引数, 仮型引数…>」を置くだけ。後はクラスの場合と同様。 public static <T> T notNull(T arg1, T arg2) { T ret; if (arg1 != null) { ret = arg1; } else { ret = arg2; } return ret; } このメソッドを呼び出す側は、クラスの場合とは異なり、明示的に型引数を指定する必要は無い。 指定した引数の値に応じて、自動的に型が判断される。 String s = notNull("abc", "def"); //型引数はString Long l = notNull(new Long(1), new Long(2)); //型引数はLong int i = notNu
Listをソートしてくれるのだけれども Collections#sortはList(正確にはコレクションフレームワーク)をソートしてくれるメソッドなんだけれども、 昔、以下のようなコードを見たことがある。 String[] anArray = getAnArray(); List list = Arrays.asList(anArray); Collections.sort(list); return list; 仕様としてはレガシーな配列を受け取りソートしてListとして返すだけなんだけれども、 実はよろしくない。 Collections#sortの中身をみる 中身は以下のような感じ。 Object[] a = list.toArray(); Arrays.sort(a); ListIterator i = list.listIterator(); for (int j=0; j 実は中
なぜ、いまScalaなのか? TwitterがScalaを利用しているのは有名ですが、他にも位置情報を利用したfoursquareはScalaで構築されたLiftというWebフレームワークを利用していますし、GTDツールとして有名なRemember The MilkもScalaの利用を検討しているようです。 Scalaは、Java Virtual Machine(以下JVM)上で動くオブジェクト指向+関数型言語です。簡潔で柔軟な記述が可能であり、マルチコアを意識したライブラリがあり、JVMでのスケールメリットを享受できることが、これらの企業で採用に踏み切った理由であると考えられます。 Scalaは、非常にバランスの取れたプログラミング言語です。本連載では、Scalaの基本的な文法を解説しながら、オブジェクト指向と関数型言語を組み合わせたプログラミングスタイルについて、解説したいと思います。
僕がいま係っているシステムで、別システムのログインパスワードを文字列でデータベースに格納することになりました。これを実現するために、Javaで文字列の暗号化/復合化を行う方法を調べたので、その結果を記しておきます。(※既に別の方々が解説している内容をまとめただけですが。) まず、大きく以下の工程にわけて考えます。 文字列を暗号化する(バイト配列を得る) 暗号化されたバイト配列を文字列化する(暗号化文字列を得る) 暗号化された文字列をバイト配列化する(暗号化バイト配列を得る) バイト配列を復号化する(文字列を得る) 「1. 文字列を暗号化する(バイト配列を得る)」 Java Tips:手軽に暗号化・復号化するには? このページにばっちり解説してあるとおりです。 import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec
ようこそお出で下さいました。 システムトラブルにより、プログラミングメモの記事を中止しています。 復旧の目処はたっていません。 ⇒プログラミングメモの記事を復活させました。 まだ試運転中ですが、HOME - 愚鈍人をご参照ください。
HOMMEZ(オムズ)は男性の心と身体の健康を支援し、一人でも多くの人が子供を得る幸せや男性としての喜びを享受できる社会の実現を目指しています。男性の妊活、活力にまつわる情報や商品の力で性や妊活に悩む男性が効率的に納得感を持って活動できる機会を創出します。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く