I managed to solve the problem.
The cause was my mistake in understanding how signals works in test environment.
During tests I have no EventLoop running, so the signal-slot mechanism of Qt can't work.
De facto, every time the assign method execute, I was emitting a signal using a Qt:QueueConnection, but there was no EventLoop running to process the signal queue.
Every time I call a setter method in test code, the next line have to be:
QVERIFY(signalSpy->wait());
which waits, no more than 5 seconds, running an internal EventLoop to process all emitted signals, and waiting for signals of the same type declared in QSignalSpy instance.
Since I had some methods with signal checks and some with only simple code checks (but both of them emit signals) I had a continuous jump between methods with and without QSignalSpy usage.
Since no EventLoop is running on tests, when I called the wait method on QSignalSpy instance, I was getting all the queued signals emitted on the previous test method, which also explain why I was getting constant numbers on signal counts.
I was not able to resolve just calling signalSpy->clear() in cleanup method because there was nothing to clear.
One solution could be to run the EventLoop between every tests method, just to be sure that the next test will handle only signals emitted in its code.
I resolved the problem implementing signals checks in every test method, which not only was my initial goal, but which ensure that every signal-emitting code is followed by a call to wait() method, which runs the EventLoop.
Every signal, now, is kept inside the test method and everything seems to works.
Thanks for support