ユーザ用ツール

サイト用ツール


android:junit

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
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>​
 +
android/junit.1575303735.txt.gz · 最終更新: 2019/12/03 01:22 by ips