タグ: junit

  • 先日のTDDBCのおさらい – Android Studio

    先日高松で開催されたTDDBCにPHPのTAとして参加しました。
    事前の素振りがちょっと足りなかったみたいで、部分的にぎこちない説明になったかもしれません。m(..)m
    ですが、参加者の皆さんにはとても学びの多い貴重な経験になったと思います。これをきっかけにより良いプログラミングについて取り組んでいただければと思います。

    ということで(?)、TDD本を読みながらJavaでおさらいをしてみました。

    環境はAndroid Studio(3.1.3)

    確認したかったのは、コードに変更があった際のテストの自動実行(automatic rerun)。

    Toggle auto-test のボタンを有効にしますが、その前に、
    Preferences… -> Build, Execution, Deployment -> Compiler
    を開いて「Make project automatically」にチェックを入れておきます。

    これでコードを編集すると、手を止めたところで自動的に ビルド -> Test が走りました。

    以上、参考まで。

  • Mockito でテストしようとして java.lang.NoClassDefFoundError になる場合 – Android

    Mockito でテストしようとして java.lang.NoClassDefFoundError になる場合 – Android

    先月JUnit勉強会を開催しまして、

    JUnit勉強会 in 松山 – “REVIVAL” #season1

    その時に仕掛ったモックをあらためて使おうとしたところ、
    “java.lang.NoClassDefFoundError”
    となって先に進めない状況が続いていました。

    開発環境は、Googleが提供しているADT-Bundle版です。

    Get the Android SDK

    結局、ビルドパスの設定でMockitoをライブラリに追加したのが良くなかったようです。

    例えば、

    • テスト対象: TipsCalendar
    • テストプロジェクト: TipsCalendarTest

    の場合。

    javabuildpath-project
    Java Build Path – Projects

    テスト対象プロジェクトが指定されていること。

    javabuildpath-library
    Java Build Path – Libraries

    ターゲットのAPIとその依存関係が指定されていること。

    ※ここに手作業でmockito-all-1.9.5.jarを追加するとタイトルのエラーになりました。

    ビルドパスを編集するのではなくて、テストプロジェクトに libs フォルダを作成してその中に、

    • mockito-all-1.9.5.jar
    • dexmaker-1.0.jar
    • dexmaker-mockito-1.0.jar

    これらのファイルをコピーすればOKでした。

  • JUnit勉強会を開催しました。

    3月12日の夕方からJUnitの勉強会を開催しました。

    イベントの案内ページはこちら。
    JUnit勉強会 in 松山 – “REVIVAL” #season1

    教材は、”JUnit” や “Tutorial” といったキーワードで検索したネット上の記事と
    WEB+DB PRESS Vol.69, そして「JUnit実践入門」を辞書的に(?)使いました。

    セッション1

    Eclipse, JDKなどは各自インストール済みだったのでプロジェクト作成から開始。
    JUnitライブラリの組み込み方や、テストクラスの追加の仕方などうっかりミスがあったり。それとAssertThatですが、参考にしたTutorial記事のimportの仕方に引きずられていたようで、勉強会のあとでimportの記述の仕方を見直したところ問題なく利用できました。

    振り返りの様子
    2013-03-12-junit-s1

    参考
    The Hamcrest Tutorial
    JUnitMatchers(JUnit API)

    セッション2

    ParameterizedTestやTemporary Folder、@Ruleなど。
    何となくキーワードをながめるだけではよくわからなかったりしますが、仕事のどういう場面で使うとか解説してくれる方がいてとても勉強になりました。逆に、あまり使っていないこともわかったりして、今後の仕事で使ってみたいなど刺激にもなったようです。

    振り返りの様子
    2013-03-12-junit-s2

    セッション3

    EasyMockをテーマに議論しました。
    そして全体を通しての振り返り。今回はTutorialに沿って進めてみましたが、次回は実際に課題を決めてテスト->コーディングを繰り返してみたいと思います。

    振り返りの様子
    2013-03-12-junit-s3

    コーヒーブレイク

    たまたま誕生日の方がいらっしゃいましたので、サプライズパーティーとなりました。
    2013-03-12-junit-c1

  • Androidのテストプロジェクト – JUnit test

    Androidのテストプロジェクトを試していたところコンストラクタのところで警告が出ました。

    public class MainActivityTest extends ActivityInstrumentationTestCase2 {
    
    	public MainActivityTest() {
    		super("package.name.hogehoge", MainActivity.class);
    		// TODO Auto-generated constructor stub
    	}
    
    

    Referenceを調べてみたところ、パッケージ名を指定するコンストラクタがdeprecatedになっていました。
    ActivityInstrumentationTestCase2
    ということで、下記のように修正。

    public class MainActivityTest extends ActivityInstrumentationTestCase2 {
    
    	public MainActivityTest() {
    		super(MainActivity.class);
    		// TODO Auto-generated constructor stub
    	}
    

    以上です。