2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Androidでユニットテストを始めるメモ2

Posted at

前回の続き
http://qiita.com/kojimamasahiro/items/bc65d1a39075ccc1e87b

相変わらずこちらを読んで燃え尽きる
https://developer.android.com/training/testing/unit-testing/local-unit-tests.html

前回はesspressoを使って、viewの操作に関するテストでした。
今回はmockitoを使って、スタブを作りロジックが正しく値を返却するかのテストです。

インストール

depences {
    // mockiot
    testCompile 'org.mockito:mockito-core:1.10.19'
}

テストファイルはtestディレクトリ以下に置きます。

使い方

こちらを読むといいかと思います。
https://static.javadoc.io/org.mockito/mockito-core/2.2.25/org/mockito/Mockito.html

verifyメソッドで確認

// リストをつくって
List mockedList = mock(List.class);

// 追加して
mockedList.add("one");

// oneを追加したか確認
verify(mockedList).add("one");

// one以外だとエラー
verify(mockedList).add("two");

このとき、こうする

// オブジェクトをつくって
LinkedList mockedList = mock(LinkedList.class);

// 0番目を取得したとき、
when(mockedList.get(0))

// firstを返す(.でつなぐ)
    .thenReturn("first");

// assertでテスト
assertThat(mockedList.get(0), is("first"));

既存のobjectのmethodを一部だけ変更

// listのmethodを変更する
List list = new LinkedList();

// spyを使う
List spy = spy(list);

// size()のmethodを100が返るように変更
when(spy.size()).thenReturn(100);

// 100が返る
System.out.println(spy.size());

// addなどのmethodはそのまま使える
spy.add("hoge");

// addが表示される
System.out.print(spy.get(0));

おわりに

次回はそろそろRobolectricに手を出してみたい。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?