Mocking .map
не имеет смысла - вы работаете с чистыми данными, поэтому, если вы хотите изменить результат, вы меняете ввод. Это было бы похоже на издевательство над .substr
или .toLowerCase
в String
.
Тем более, что .map
, .flatMap
и друзья - это интерфейсы с контрактами - вы бы не издевались над .equals
и .hashcode
потому что вам придется переопределить контракты с имитирующим API, где передача данных даст вам это бесплатно.
И это то, что List
, Set
, Free
, IO
и т. д. c are - данные. Вы не издеваетесь над данными, вы издеваетесь над поведением - объектами с управляемым состоянием и побочными эффектами. Поэтому никто не описал, как это сделать.