1. Nie musisz mockować takich obiektów jak DTO. Po prostu stwórz nowy obiekt i poustawiaj jego własności.
2. Prawdopodobnie nie musisz sprawdzać typu obiektu zwracanego przez Twoją fabrykę (metoda create powinna mieć ustawiony typ zwracany, aczkolwiek nie widzę kodu tej fabryki). Zamiast tego sprawdź, jakie wartości posiada obiekt stworzonego usera, np.:
$this->assertSame($user->getEmail(), $userDto->email);
3. expects($this->any()) jest zazwyczaj zbędnę. Używaj metody expects tylko wtedy, kiedy rzeczywiście spodziewasz się wywołania metody określoną liczbę razy (albo nigdy).
4. $this->getMockBuilder()->getMock() możesz skrócić do $this->createMock().