import org.mockito.Mock
import org.mockito.Mockito
import org.mockito.MockitoAnnotations
import org.mockito.Mockito.*
class SimpleClassTest {
private fun <T> anyObject(): T {
Mockito.anyObject<T>()
return uninitialized()
}
private fun <T> uninitialized(): T = null as T
lateinit var simpleObject: SimpleClass
@Mock lateinit var injectedObject: InjectedClass
@Before
fun setUp() {
MockitoAnnotations.initMocks(this)
}
@Test
fun testSimpleFunction() {
simpleObject = SimpleClass(injectedObject)
verify(injectedObject).settingDependentObject(anyObject())
}
}
java.lang.IllegalArgumentException: Parameter specified as non-null is null: method my.package.InjectedClass.settingDependentObject, parameter dependentObject
class SimpleClass(val injectedClass: InjectedClass) {
fun simpleFunction() {
injectedClass.settingDependentObject(DependentClass(Response.Builder().build()))
}
}
open class DependentClass(response: Response) {
}
open class InjectedClass() {
lateinit var dependentObject: DependentClass
fun settingDependentObject(dependentObject: DependentClass) {
this.dependentObject = dependentObject
}
}
默认情况下,Kotlin类和成员是final。Mockito不能模拟最终类或方法。因此,当你写:
verify(injectedObject).settingDependentObject(anyObject())
真正的实现被调用,它需要非空参数。
要解决这个问题,要么打开类和方法,要么更好地更改SimpleClass
以接受接口作为其构造函数参数,并模拟该接口。
我在行得到异常。怎么会呢?这到底是怎么回事? 这是我的密码。 堆栈跟踪
当我启动时,遇到一个奇怪的错误: 这是我的类: 当参数被指定为非空时,该错误指出它为空;但它是可为null的(),并且方法在源代码中标记为。 我在其他Kotlin项目中没有遇到过这个错误。我使用的是Kotlin版本1.1.2-5;与1.1.2-3有相同的误差。
不确定是什么原因导致了这种情况,但我正在尝试从api请求数据,该api包含一个对象数组。如果我将结果打印到控制台,则数据是正确的,除了之外,我希望是一个对象数组。我不明白我错过了什么? 我得到了这个错误: 谁能给我指一下正确的方向吗?课程代码如下: 示例JSON:
我有java代码,我改成kotlin了,我的代码是用pdf-viewer库显示pdf的,我不明白为什么我的代码是错误的,下面是错误: 指定为non-null的是null参数:方法kotlin.jvm.internal.intrinsics.CheckParameterIsNotNull,inputStream参数 这是我的密码
我得到这个错误 为了那条线 以下是整个代码。这段代码最初是在java中,我使用Android Studio将其转换为静态编程语言,但现在我得到了这个错误。我试图重建和清理这个项目,但没有成功。