Say, у меня есть следующий интерфейс:getAnnotation для Java аннотаций, используемых на методе Котлин возвращает нулевое
interface AppRepository : GraphRepository<App> {
@Query("""MATCH (a:App) RETURN a""")
fun findAll(): List<App>
}
В тесте я хочу, чтобы проверить особенности строки запроса, и поэтому я делаю
open class AppRepositoryTest {
lateinit @Autowired var appRepository: AppRepository
@Test
open fun checkQuery() {
val productionMethod = appRepository.javaClass.getDeclaredMethod("findAll")
val productionQuery = productionMethod!!.getAnnotation(Query::class.java)
//demo test
assertThat(productionQuery!!.value).isNotEmpty() //KotlinNPE
}
}
По какой-то причине я не понимаю, productionQuery
is n null
. Я дважды проверил, что типы импортированных Query
в тестовом классе и Query
в репозитории одинаковы.
Таким образом, почему productionQuery
null
в этом случае?
dammit :) so embarrasing. –