你的嘲笑计划
Context
和
densityDpi
是正确的。
测试失败,因为您正在呼叫
getIconForDevice
用一个新的mock代替你的mock
上下文
.
@Test
fun getIconForDevice_ReturnsUrlWithXxhForXxhDisplay() {
val context: Context = mockk(relaxed = true)
every { context.resources.displayMetrics.densityDpi } returns 450
// pass in mocked context
assertEquals(IconHelper.getIconForDevice(context, "https://website.com/image.png"), "https://website.com/image-xxh.png")
}
更新
ClassCastException
DisplayMetrics
第一:
val metrics = context.resources.displayMetrics
我想你得把这两个字分开
displayMetrics
和
密度dpi
:
@Test
fun getIconForDevice_ReturnsUrlWithXxhForXxhDisplay() {
val context: Context = mockk(relaxed = true)
val displayMetrics: DisplayMetrics = mockk(relaxed = true) // maybe relaxed is not needed, I just put it here in case
every { context.resources.displayMetrics } returns displayMetrics
every { displayMetrics.densityDpi } returns 450
assertEquals(IconHelper.getIconForDevice(context, "https://website.com/image.png"), "https://website.com/image-xxh.png")
}