Я пытаюсь реализовать функцию расширения в моем тесте с assertj. У меня есть пользовательское исключение, подобное этому:
class MyException: Exception {
constructor(message: String, code: Int) : super(message)
constructor(cause: Throwable, code: Int) : super(cause)
}
Я бы хотел проверить свойство code
в моем тесте. к сожалению, мы используем java assertj, поэтому я попытался реализовать функцию расширения.
У меня есть следующее, мой тест:
@Test
fun `Creating webdto without name fails`() {
assertThatExceptionOfType(MyException::class.java)
.isThrownBy { service.create(WebDto.apply { this.name = null }) }
.withMessageContaining("Bean validation error.")
.withErrorCodeContaining(1) // extension function
}
private fun <T : Throwable?> ThrowableAssertAlternative<T>.withErrorCodeContaining(expectedErrorCode: ErrorCode): ThrowableAssertAlternative<T> {
// How can I access the actual or delegate parameter?
return this
}
У меня нет шансов получить параметр actual
или delegate
в моем withErrorCodeContaining
Есть идеи? заранее спасибо