在引數化測驗中,我使用hint引數來闡明測驗用例命名。從靜態分析器的角度來看,這個引數從不使用,所以這個警告kotlin-maven-plugin出現在構建日志中:
[WARNING] /Users/test/TestSizeCreation.kt: (42, 10) Parameter 'hint' is never used
如何在所有測驗中全域抑制此類警告?
帶提示的測驗示例:
@ParameterizedTest(name = "Size {index}: {0}")
@MethodSource("invalidAges")
fun shouldFailToCreateAge(hint: String, sizeCandidate: Int) {
assertThatThrownBy { Size(sizeCandidate) }
.isInstanceOf(InvalidInput::class.java)
.hasMessageStartingWith("Could not recognize a se: ")
}
companion object {
@JvmStatic
fun invalidAges(): Stream<Arguments> =
Stream.of(
arguments("negative", -5),
arguments("zero", 0),
arguments("too much", 1000)
)
}
uj5u.com熱心網友回復:
兩種可能的選擇(可能還有更多):
第一種是將引數注釋為未使用,如下所示:
@Suppress("UNUSED_PARAMETER")在函式或引數級別。
第二種選擇是在測驗中使用 lambda 來執行實際代碼,然后使用下劃線忽略第一個引數,如下所示:
import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.Arguments
import org.junit.jupiter.params.provider.Arguments.arguments
import org.junit.jupiter.params.provider.MethodSource
import java.util.stream.Stream
class Stack {
@ParameterizedTest(name = "Size {index}: {0}")
@MethodSource("invalidAges")
fun shouldFailToCreateAge(hint: String, sizeCandidate: Int) {
process(hint, sizeCandidate) { _, size ->
println("add your test using size here $size")
}
}
private fun process(hint: String, sizeCandidate: Int, block: (String, Int) -> Unit) {
block(hint, sizeCandidate)
}
companion object {
@JvmStatic
fun invalidAges(): Stream<Arguments> =
Stream.of(
arguments("negative", -5),
arguments("zero", 0),
arguments("too much", 1000)
)
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/445993.html
標籤:行家 科特林 未使用的变量 kotlin-maven-插件
