Mã của tôi như dưới đây, đề cập đến các giải pháp trong https://stackoverflow.com/a/30308199/3286489Parameter quy định như không null là null khi sử dụng Mokito anyObject() trên chức năng Kotlin
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())
}
}
tôi vẫn còn có những lỗi dưới đây
java.lang.IllegalArgumentException: Parameter specified as non-null is null: method my.package.InjectedClass.settingDependentObject, parameter dependentObject
Tôi có nhớ gì không?
CẬP NHẬT Dưới đây là mã thử nghiệm (dạng đơn giản và làm việc)
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
}
}
Lớp injectObject của tôi đã là lớp mở. Các thiết lậpDependentObject yêu cầu một đối tượng không null, nhưng anyObject() trả về null. Đó là lý do tại sao tôi nghĩ giải pháp trong http://stackoverflow.com/a/30308199/3286489 sẽ giúp tôi khắc phục vấn đề cần thiết. Nhưng nó vẫn không hoạt động. – Elye
@Elye vui lòng thêm nguồn 'InjectedClass' vào câu hỏi – miensol
Đã thêm lớp học để được kiểm tra vào Cập nhật ở trên. Cảm ơn! – Elye