首页 > 解决方案 > 具有动态占位符的单元 getString

问题描述

如何使用动态变化的占位符对 getString 进行单元测试?

如果只是这样做

 `when`(application.getString(R.string.anString,"args"))
            .thenReturn("mph")

它只是静态的。如果我调用将文本“args”更改为不同内容的函数,它只会返回“mph”,因为我将它设置为when()。是否可以使用动态更改的占位符测试 getString ?谢谢

标签: android

解决方案


在模仿

`when`(getString(R.string.withPlaceHolder)).thenReturn("#$1s string with placeholder")

在被测试的类上不要使用带有第二个参数的 getString。而是使用 String.Format()

String.format(getString(R.string.withPlaceholder),"placeholder text here")

推荐阅读