ฉันมี View Model
ที่ขยาย AndroidViewModel
class MoveViewModel(application: Application): AndroidViewModel(application),CoroutineScope{
....
}
และฉันต้องการทดสอบหน่วย แต่ฉันไม่สามารถหาวิธีจำลองคลาส Application ได้
@Test
fun testSearchDataValidation() {
val application = Mockito.mock(Application::class.java)
val viewModel = MoveViewModel(application)
.....
}
แต่เมื่อฉันไปรันการทดสอบ ฉันได้รับข้อผิดพลาดว่า Mockito
ไม่สามารถจำลอง Application
ได้
org.mockito.Exceptions.base.MockitoException: Mockito ไม่สามารถจำลองคลาสนี้: คลาส android.app.Application
Mockito สามารถจำลองเฉพาะชั้นเรียนที่ไม่ใช่ส่วนตัวและไม่ใช่ชั้นเรียนสุดท้ายเท่านั้น
ฉันจะจำลองคลาส Application เพื่อส่งผ่านไปยังโมเดลมุมมองของฉันได้อย่างไร
แก้ไข:
นี่คือลำดับชั้นโฟลเดอร์ของฉันตามที่แนะนำโดย @farhanjk
test
ได้หรือไม่ - person tyczj   schedule 10.04.2019test
คุณจะต้องจำลองการพึ่งพา Android ทั้งหมด (เช่นApplication
หรือSharedPreferences
) การทดสอบในโฟลเดอร์androidTest
จะทำให้แอปพลิเคชันจริงของคุณพร้อมใช้งานแทน คุณควรจะสามารถทดสอบหน่วยมุมมองแบบจำลองในtest
ได้ ซึ่งเร็วกว่าandroidTest
มาก - person lelloman   schedule 10.04.2019