Java
Travis CIとCoverallsを使って、GitHubに公開しているJavaプログラムのカバレッジを測定する方法を以下に記載する(Mavenで管理されたJavaプロジェクトを想定)。Travis CIとCoverallsの連携にはCoverallsの公式ページ(以下)で紹介されているcoveralls-mav…
http://docs.mockito.googlecode.com/hg/latest/org/mockito/ArgumentMatcher.htmlを見ると、このクラスを使って以下のように、IsListOfTwoElementsクラスのような独自のArgument Matcherを作る事が出来る。 class IsListOfTwoElements extends ArgumentMatc…
System.out.printlnとかSystem.exitをテストするのはちょっと面倒なのだが、その辺りを補助してくれるJUnitのルールのコレクション(System Rules)があったので試してみた。 【事前準備】 System Rulesを使うにはApache Commons IOが必要という事でダウンロ…
MockitoのMatchers.anyObject()は以下のmethodA()のように、あるオブジェクトを引数に持つメソッドが呼び出されたかどうかを、Mockitoで検証する際等に使うことが出来る。 public class MyClass { private MyField field; public void setField(MyField fiel…
以下のようにprivateなフィールドをモック化する場合、リフレクションを使うと出来るのだが、Mockitoにはそのリフレクションを簡単に使えるWhiteboxというユーティリティクラスがある。 public class MyClass { private final MyField field = new MyField()…
「米グーグルの「Google App Engine」、Javaアプリケーションが利用可能に | 日経 xTECH(クロステック)」と言うことで、Googleのチュートリアル(http://code.google.com/intl/en/appengine/docs/java/gettingstarted/)に沿って早速試してみた。なお、チ…
Livedoorのお天気Webサービス(REST)をJavaアプリケーションから利用する場合、以下のようなコードになる*1 *2 *3。 import java.net.HttpURLConnection; import java.net.URL; import java.util.logging.Level; import java.util.logging.Logger; import jav…
javax.xml.parsers.DocumentBuilderを利用して、XMLドキュメントを処理しようとした際、下記のコードの3行目でMalformedByteSequenceExceptionという例外が発生した。 1: DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance(); 2: Docu…
Listなどのコレクション・クラスをソートする場合、java.util.Collectionsクラスのsort()メソッドを利用すると便利である(配列の場合java.util.Arraysを使用)。例えばAnimalというクラスのリストをソートする場合、以下のようなコードになる*1。 import ja…
PATH環境変数にJAVAのbinディレクトリを追加していないのに、何故コマンドプロンプトからフルパスで指定しなくてもjava.exeが実行出来るのか不思議だったのだが、良く見るとC:\Windows\system32配下にjava.exeがコピーされていた。 そこで、PATHを追加しなく…