Я хотел бы заглушить некоторый код, чтобы метод vararg возвращал true, когда один из аргументов соответствует определенному значению.Например, учитывая существующий код, который я не могу изменить:
(здесь используется Kotlin, но я думаю, что это применимо к любой ситуации с Java.)
class Foo {
fun bar(vararg strings : String) : Boolean {
// Iterates `strings` and returns true when one satisfies some criteria
}
}
... Я хочунаписать код заглушки, подобный этому:
val foo = Foo()
whenever(foo.bar(eq("AAA"))).thenReturn(true)
Это прекрасно работает, когда вызов точно foo.bar("AAA")
.
Однако бывают случаи, когда код подtest делает вызов foo.bar("AAA", "BBB")
, и в этих случаях происходит сбой.
Как я могу изменить мой код заглушки, чтобы он работал, когда в вызове передается любое количество varargs?
Редактировать Помечено как возможное Дубликат ;в этом случае сценарий предусматривает полное отсутствие varargs в вызове.Здесь я пытаюсь сопоставить один конкретный элемент массива varargs.