Скажем, у меня тестируется юнит, подобный этому:
internal class MySerializer {
fun serialize(): ByteArray {
val initialBufferSize = 1000
val autoResizeBuffer = true
val value = ThirdPartySerializer(initialBufferSize, autoResizeBuffer)
value.doMoreStuff()
return value.serialize()
}
}
Как я могу шпионить за ThirdPartySerializer
, который поступает из сторонней библиотеки, чтобы убедиться, что он вызывается с true
в качестве второго аргумента?
Обычно я проверяю результат, а не способ вызова функций, но в этом случае проверка вызова конструктора идеальна: в противном случае мне пришлось бы написать тест, чтобы убедиться, что вывод может быть больше 1000 байт, что проблематично c, потому что константа «1000» может выйти из син c, и я не хотел бы выставлять ее как постоянную c в проверяемом оборудовании, чтобы ее можно было использовать в его испытания.