Fix unit tests (#5947)

* move createLocale() method to companion object and add test dependency

* use mockk() from Mockk library for mocking sealed classes

* change method parameter to null-able String type

* add null check for accessing property from unit tests

* change method signature to match old method's signature

It fixes the NullPointerException when running ImageProcessingUnitTest

* Fix unresolved references and make properties public for unit tests

* fix tests in UploadRepositoryUnitTest by making return type null-able
This commit is contained in:
Rohit Verma 2024-11-23 05:05:34 +05:30 committed by GitHub
parent fe347c21fd
commit e070c5dbe8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 56 additions and 52 deletions

View file

@ -16,6 +16,7 @@ import fr.free.nrw.commons.TestCommonsApplication
import fr.free.nrw.commons.auth.login.LoginResult
import fr.free.nrw.commons.createTestClient
import fr.free.nrw.commons.kvstore.JsonKvStore
import io.mockk.mockk
import org.junit.Assert
import org.junit.Before
import org.junit.Test
@ -66,11 +67,11 @@ class LoginActivityUnitTests {
@Mock
private lateinit var account: Account
@Mock
private lateinit var loginResult: LoginResult
@Before
fun setUp() {
loginResult = mockk()
MockitoAnnotations.openMocks(this)
OkHttpConnectionFactory.CLIENT = createTestClient()
activity = Robolectric.buildActivity(LoginActivity::class.java).create().get()

View file

@ -7,13 +7,14 @@ import androidx.test.core.app.ApplicationProvider
import fr.free.nrw.commons.TestCommonsApplication
import fr.free.nrw.commons.auth.login.LoginResult
import fr.free.nrw.commons.kvstore.JsonKvStore
import io.mockk.every
import io.mockk.mockk
import org.junit.Assert
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.MockitoAnnotations
import org.powermock.api.mockito.PowerMockito.`when`
import org.robolectric.RobolectricTestRunner
import org.robolectric.Shadows.shadowOf
import org.robolectric.annotation.Config
@ -33,7 +34,6 @@ class SessionManagerUnitTests {
@Mock
private lateinit var defaultKvStore: JsonKvStore
@Mock
private lateinit var loginResult: LoginResult
@Mock
@ -41,6 +41,7 @@ class SessionManagerUnitTests {
@Before
fun setUp() {
loginResult = mockk()
MockitoAnnotations.openMocks(this)
accountManager = AccountManager.get(ApplicationProvider.getApplicationContext())
shadowOf(accountManager).addAccount(account)
@ -68,8 +69,8 @@ class SessionManagerUnitTests {
@Test
@Throws(Exception::class)
fun testUpdateAccount() {
`when`(loginResult.userName).thenReturn("username")
`when`(loginResult.password).thenReturn("password")
every { loginResult.userName } returns "username"
every { loginResult.password } returns "password"
val method: Method =
SessionManager::class.java.getDeclaredMethod(
"updateAccount",