Vaibhav Jaiswal
09/13/2024, 7:24 AMval user = User(
displayName = "",
contactNumber = "",
location = null,
email = "",
profileImageUrl = "",
connectionCount = 0,
followersCount = 0,
id = "",
summary = "",
tagline = "",
slug = "",
totalExperienceInMonths = 0,
createdAt = DateHelpers.now,
isFollowed = false,
)
val resultUser = user.copy(token = Arb.string().
coEvery {
apiService.createUser(user, "", "")
} returns resultUser
//call function to test
userRepo.createUser(user, "", "")
Which returns fine, when i debug using breakpoints
But the function which I am testing, does this internally
preferences.user = json.encodeToString(user)
Which crashes the test, even though the type User is Serializable
Stack trace in thread 🧵Vaibhav Jaiswal
09/13/2024, 7:25 AMParameter specified as non-null is null: method kotlinx.serialization.encoding.AbstractEncoder.encodeStringElement, parameter value
java.lang.NullPointerException: Parameter specified as non-null is null: method kotlinx.serialization.encoding.AbstractEncoder.encodeStringElement, parameter value
at kotlinx.serialization.encoding.AbstractEncoder.encodeStringElement(AbstractEncoder.kt)
at com.medial.app.data.models.user.User.write$Self$models_debug(User.kt:8)
at com.medial.app.data.models.user.User$$serializer.serialize(User.kt:8)
at com.medial.app.data.models.user.User$$serializer.serialize(User.kt:8)
at kotlinx.serialization.json.internal.StreamingJsonEncoder.encodeSerializableValue(StreamingJsonEncoder.kt:226)
at kotlinx.serialization.json.internal.JsonStreamsKt.encodeByWriter(JsonStreams.kt:31)
at kotlinx.serialization.json.Json.encodeToString(Json.kt:81)
at com.medial.app.data.repo.user.UserRepository.setUser(UserRepository.kt:170)
at com.medial.app.data.repo.user.UserRepository.createUser(UserRepository.kt:57)
at com.medial.app.data.repo.user.UserRepositoryTest$testCreateUser$1$1$2.invokeSuspend(UserRepositoryTest.kt:97)
at com.medial.app.data.repo.user.UserRepositoryTest$testCreateUser$1$1$2.invoke(UserRepositoryTest.kt)
...........