0

我正在尝试为几个简单的方法进行简单的单元测试,但这是我第一次尝试使用 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"
);
4

0 回答 0