kotlin學習筆記——單元測試
阿新 • • 發佈:2019-01-05
Unit Test
kotlin也可以進行unit testing,如果專案中之前沒有,那麼需要做一些準備工作。 首先引入依賴 testCompile 'junit:junit:4.12' 這裡注意不能是androidTestCompile,否則會報錯Unresolved reference: xxxx 然後建立目錄 在src目錄下(main的同級)建立test/java目錄,建立完會發現java目錄的顏色自動為綠色,表示ide知道我們要使用unit testing模式。 在java目錄下建立package(與專案主包名一致) 建立測試程式碼 在package下建立測試類編寫程式碼即可,例如: importimport kotlin.test.assertTrue
class SimpleTest {
@Test fun unitTestingWorks() {
assertTrue(true)
} } 執行即可
Instrumentation Test
與unit testing一樣,首先引入依賴defaultConfig { ... testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" }
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2'exclude去掉一些依賴,防止重複引入 (contrib這個增加了一些額外功能,比如測試recyclerview) 然後建立目錄,與unit一樣,只不過根目錄不是test而是androidTest,其他一樣。 建立測試程式碼 import android.support.test.espresso.Espresso.onView, { exclude group: 'com.android.support', module: 'support-annotations' }) androidTestCompile ("com.android.support.test.espresso:espresso-contrib:2.2.1"){ exclude group: 'com.android.support', module: 'appcompat' exclude group: 'com.android.support', module: 'support-v4' exclude group: 'com.android.support', module: 'support-annotations' exclude module: 'recyclerview-v7' }
import android.support.test.espresso.action.ViewActions.click
import android.support.test.espresso.assertion.ViewAssertions.matches
import android.support.test.espresso.contrib.RecyclerViewActions
import android.support.test.espresso.matcher.ViewMatchers.isAssignableFrom
import android.support.test.espresso.matcher.ViewMatchers.withId
import android.support.test.rule.ActivityTestRule
import android.support.v7.widget.RecyclerView
import android.widget.TextView
import org.junit.Rule
import org.junit.Test
class SimpleActivityTest {
@get:Rule
val activity = ActivityTestRule(MainActivity::class.java)
@Test fun testItem(){
onView(withId(R.id.recyclerview)).perform(RecyclerViewActions.actionOnItemAtPosition<RecyclerView.ViewHolder>(0, click()))
onView(withId(R.id.textView)).check(matches(isAssignableFrom(TextView::class.java)))
} } testitem中第一行程式碼是模擬點選recyclerview的第一個item。第二行是判斷id是textview的元件是否是TextView。