Sembra un qualcosa che puoi fare creando diverse implmentazioni del protocollo ed instanziando la versione "mock" quando sei in profilo test
Pero' quello che chiedi (cambiare ritorno in base agli argumenti) sarebbe uno "stub" che ti devi creare tu. Alcune techniche spiegate bene qui: https://medium.com/swlh/how-to-test-clojure-systems-using-different-seam-techniques-df0300df893f
si in effetti basta che ci metto io l’implementazione che voglio tipo (foo [a] (when (= a "a") "asd") (when (= a "b") "bsd"))