我正在尝试为几个简单的方法进行简单的单元测试,但这是我第一次尝试使用 mockito,所以我真的不明白我做错了什么。
这是我要测试的课程
object AppPreferenceHelper {
private var sharedPreferences: SharedPreferences? = null
fun initPreferences(context: Context) {
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
}
fun checkIsFavorite(id: String): Boolean {
getFavorites()
favorites?.forEach {
if (it == id)
return true
}
return false
}
fun addFavorite(id: String?) {
id?.let {
favorites?.add(it)
val gson = Gson()
val temp = gson.toJson(favorites)
sharedPreferences?.edit()?.putString(FAVORITES, temp)?.apply()
}
}
}
这就是我在单元测试课上尝试做的事情
@RunWith(MockitoJUnitRunner::class)
class AppPreferenceHelperUnitTest {
private var prefHelper: AppPreferenceHelper? = null
private var context: Context = Mockito.mock(Context::class.java)
@Before
fun setUp(){
this.context = Mockito.mock(Context::class.java)
this.prefHelper = Mockito.mock(AppPreferenceHelper::class.java)
prefHelper?.initPreferences(context)
}
@Test
fun testCheckIsFavorite(){
prefHelper?.addFavorite("testId")
verify(prefHelper)?.checkIsFavorite("testId")
}
}
这是我不断收到的错误
Wanted but not invoked:
appPreferenceHelper.checkIsFavorite(
"testId"
);