Tegyük fel, hogy van egy tesztórám néhány gúnnyal. Lint azt sugallja, hogy a mezők lehetnek privátak. Érdeklődnék, hogy van-e probléma a priváttá tételükkel? Egyik kollégám úgy gondolja, hogy talán Mockito reflexiót fog használni. Igaz ez, vagy nyugodtan megjelölhetem őket privátként?
@Mock private Context context;
vs
@Mock Context context;
A hivatalos Android-dokumentáció a Kotlin-verzión magánjellegű, a Java-verzión azonban nem (a kérdés írásakor). https://developer.android.com/training/testing/unit-testing/local-unit-tests#kotlin
Körülnéztem, és Google-t kerestem, de nem vagyok benne biztos, mert sehol nincs kifejezetten megemlítve, és néhány hivatkozás privát, míg mások nem.
A tesztek mindkét esetben jól futnak, és körülbelül ugyanannyi időt vesznek igénybe (10 másodperc). Ezért szerintem jobb, ha privátként jelölöd meg, és eltávolítod a szöszhibát. Mi lehet a hátránya?
Amennyire meg tudom ítélni, a reflexiónak semmi köze ahhoz, hogy az érték privát-e vagy sem. Úgy tűnik, ez inkább arról szól, hogy látja-e a metódusokat az álosztályon belül. Ha ezek a metódusok az osztályon belül privátak, akkor reflexiót kell használnia.