この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
android:junit [2019/12/03 01:22] ips |
android:junit [2019/12/04 01:26] (現在) ips [Hamkrest - Hamcrest for Kotlin] |
||
---|---|---|---|
ライン 6: | ライン 6: | ||
[[https://github.com/npryce/hamkrest/blob/master/README.md|Hamkrest - Hamcrest for Kotlin]] | [[https://github.com/npryce/hamkrest/blob/master/README.md|Hamkrest - Hamcrest for Kotlin]] | ||
+ | com.natpryce.hamkrest → kotlin用のhamkrest | ||
+ | org.hamcrest. → 普通のhamkrest | ||
[[https://qiita.com/opengl-8080/items/e57dab6e1fa5940850a3|HamcrestのMatchersに定義されているメソッドの使い方メモ]] | [[https://qiita.com/opengl-8080/items/e57dab6e1fa5940850a3|HamcrestのMatchersに定義されているメソッドの使い方メモ]] | ||
+ | |||
+ | [[https://github.com/npryce/hamkrest/blob/master/docs/function-references.md|Shortcuts: using function references as Matchers]] | ||
<code kotlin build.gradle(module)> | <code kotlin build.gradle(module)> | ||
ライン 20: | ライン 24: | ||
<code kotlin> | <code kotlin> | ||
- | import com.natpryce.hamkrest.* | + | import com.natpryce.hamkrest.* // kotlin用のhamkrest |
import com.natpryce.hamkrest.assertion.assertThat | import com.natpryce.hamkrest.assertion.assertThat | ||
import org.junit.Test | import org.junit.Test | ||
ライン 32: | ライン 36: | ||
assertThat("Hello", equalTo("Hello")) //文字列一致 | assertThat("Hello", equalTo("Hello")) //文字列一致 | ||
assertThat( Integer.parseInt(actual.ans),allOf(greaterThanOrEqualTo(1), lessThanOrEqualTo(9))) //1~9まで | assertThat( Integer.parseInt(actual.ans),allOf(greaterThanOrEqualTo(1), lessThanOrEqualTo(9))) //1~9まで | ||
+ | |||
+ | // listsは1..9まですべてを含む | ||
+ | val contain = Matcher(List<out Int>::containsAll,listOf(1,2,3,4,5,6,7,8,9)) | ||
+ | assertThat(lists,contain ) | ||
} | } | ||
ライン 47: | ライン 54: | ||
</code> | </code> | ||
- | ==== 対策1 ==== | + | ==== 対策1.testOptionsを追加する ==== |
http://g.co/androidstudio/not-mocked | http://g.co/androidstudio/not-mocked | ||
ライン 62: | ライン 69: | ||
} | } | ||
</code> | </code> | ||
+ | |||
+ | ==== 対策2.PowerMockを使う==== | ||
+ | |||
+ | PowerMockは、static関数のMockを作ることができるライブラリ。 | ||
+ | インポートするバージョンによってはうまく動作しないようでハマった。 | ||
+ | |||
+ | [[https://blog.masterka.net/archives/271|Android+Kotlin+PowerMockitoをやってみた]] | ||
+ | |||
+ | <code kotlin build.gradle(Modlue:app)> | ||
+ | |||
+ | </code> | ||
+ | |||
+ | <code kotlin> | ||
+ | |||
+ | import android.util.Log | ||
+ | import com.natpryce.hamkrest.allOf | ||
+ | import com.natpryce.hamkrest.assertion.assertThat | ||
+ | import com.natpryce.hamkrest.equalTo | ||
+ | import com.natpryce.hamkrest.greaterThanOrEqualTo | ||
+ | import com.natpryce.hamkrest.lessThanOrEqualTo | ||
+ | import org.junit.Test | ||
+ | import org.junit.runner.RunWith | ||
+ | import org.powermock.api.mockito.PowerMockito | ||
+ | import org.powermock.core.classloader.annotations.PrepareForTest | ||
+ | import org.powermock.modules.junit4.PowerMockRunner | ||
+ | |||
+ | |||
+ | @RunWith(PowerMockRunner::class) //ADD | ||
+ | @PrepareForTest(Log::class) //ADD | ||
+ | class GameMakerTest { | ||
+ | |||
+ | @Test | ||
+ | fun makePlus() { | ||
+ | PowerMockito.mockStatic(Log::class.java) //ADD | ||
+ | ・・・テスト対処でもテストでもLogがあればmockしてくれる。 | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | </code> | ||
+ |