Although I prefer stubbing over mocking as much as possible, sometimes it is unavoidable to check the behavior of your test objects. It is a tradeoff to make between rewriting the application logic to make it easier testable or using some mocking magic.
In NSubstitute, the stubbing library of my choice, you can use the Received() or DidNotReceive() extension methods:
More information: https://nsubstitute.github.io/help/received-calls/