我有一个方法
fun getUser(userId: UserId): Optional<User?> = userRepository.findById(userId)
在 Java 中返回 Optional。所以我想在我的 Kotlin 单元测试中模拟该方法调用。
这是我的第一个猜测...
given { mockedUserService.getUser(currentUser.userId) }.willReturn(Optional.of(currentUser))
...但编译器说不
类型不匹配:推断类型是 Optional 但 Optional<User?>! 预计
所以我开始做val currentUser: User?
只是为了让编译器开心。
given { currentUser?.userId?.let { mockedUserService.getUser(it) }.willReturn(Optional.of(currentUser))
类型不匹配:推断类型是 Optional 但 Optional<User?>? 预计
类型不匹配:推断类型是用户?但 TypeVariable(T) 是预期的
现在我有点迷失了。我怎样才能让编译器满意?