У меня плохой опыт с подходами, основанными на подобных событиях. Как вы обнаружили, труднее имитировать и тестировать, но вы также заменяете более простой код на более тяжелый, не получая при этом ничего: вам все равно нужно написать связующий код для активации этих событий. События могут также превратиться в утечки памяти, если они не были освобождены должным образом, или неприятные ошибки, потому что в коде сложнее ориентироваться.
Мне проще превратить эти события в методы презентатора и позволить представлению вызывать их напрямую. Это проще для тестирования, и труднее писать тесты на макеты, что довольно бессмысленно.