[英]java.lang.IllegalStateException: [TextView] must not be null
[英]JUnit/Mockito: java.lang.IllegalStateException: “field” must not be null
我對Mockito和測試還很陌生,但是我無法弄清楚到底是什么問題,這是一個簡單的MVP結構
lateinit var activity: MainActivity
private val aET = mock<EditText>()
private val aValue = "a"
private val bET = mock<EditText>()
private val bValue = "b"
private val resultTextView = mock<TextView>()
private val aMockEditable: Editable = mock()
private val bMockEditable: Editable = mock()
@Before
fun setup() {
activity = mock()
activity.presenter = mock()
whenever(activity.a).thenReturn(aET)
whenever(activity.b).thenReturn(bET)
whenever(aET.text).thenReturn(aMockEditable)
whenever(bET.text).thenReturn(bMockEditable)
whenever(aMockEditable.toString()).thenReturn(aValue)
whenever(bMockEditable.toString()).thenReturn(bValue)
whenever(activity.resultText).thenReturn(resultTextView)
}
@Test
fun onPlus() {
activity.onPlusClicked()
verify(activity.presenter).onPlusClicked(aValue, bValue)
}
MainActivity代碼:
fun onPlusClicked() {
presenter.onPlusClicked(a.text.toString(), b.text.toString()) // ERROR: java.lang.IllegalStateException: a must not be null
}
override fun showResult(result: String) {
resultText.text = result
}
presenter
者最終將調用showResult
謝謝!
我不認識科特林,但我認為這條線
activity.presenter = mock()
必須更改為類似
var presenter = mock()
whenever(activity.presenter).thenReturn(presenter)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.