Я думаю, вам придется конвертировать оба числа в один и тот же тип, например:
assertEquals(size.toLong(), totalElements)
Это преобразует size
в Long;и totalElements
уже является Long
, поэтому компилятор может вывести тип Long
для assertEquals()
.Это немного неловко, но компилируется и делает то, что вы хотите.
(Конечно, вы могли бы вместо этого конвертировать в Int
s (или другой числовой тип), но это не так хорошо, потому что это может дать ложные срабатывания, еслиtotalElements
находится вне диапазона Int.)
Это немного более неловко, чем Java, потому что Kotlin более осторожен в преобразованиях чисел, которые он делает;как и в случае с улучшенной проверкой нуля, это может привести к потенциальным ошибкам, которых не будет в Java.
Как ни странно, когда я попробовал ваш код, он даже не скомпилировался: произошел сбой с ошибкой «Ошибка вывода типа»,(Я использую kotlinc-jvm 1.3.11.) Еще раз, Kotlin обнаруживает проблемы во время компиляции!