You can just set the value of the android.os.Build.MANUFACTURER and android.os.Build.MODEL in your test with thee following code:
ReflectionHelpers.setStaticField(android.os.Build::class.java, "MANUFACTURER", "My Manufacturer")
ReflectionHelpers.setStaticField(android.os.Build::class.java, "MODEL", "My Model ")
Find below the full piece of code.
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
internal class DeviceInfoManagerImplTest{
private lateinit var manager: DeviceInfoManagerImpl
private lateinit var context: Context
private lateinit var firebaseTokenManager: FirebaseManager
private lateinit var dispatchers: CoroutineDispatchers
@BeforeAll
fun setUp(){
context = mockk(relaxed = true)
firebaseTokenManager= mockk()
dispatchers = spyk()
manager = DeviceInfoManagerImpl(context,
firebaseTokenManager,
dispatchers)
coEvery { dispatchers.io } returns
CoroutineDispatchersImpl().io
coEvery { firebaseTokenManager.getToken() } returns "token"
ReflectionHelpers.setStaticField(android.os.Build::class.java, "MANUFACTURER", "My Manufacturer")
ReflectionHelpers.setStaticField(android.os.Build::class.java, "MODEL", "My Model ")
mockkStatic(Settings.Secure::class)
every {
Settings.Secure.getString(context.contentResolver,
Settings.Secure.ANDROID_ID)
} answers {
"My ID"
}
}
@Test
fun test(){
val deviceInfo = runBlocking { manager.getDeviceInfo() }
println(deviceInfo.deviceManufacturer)
println(deviceInfo.deviceUniqueIdentification)
}
}