title: Assert that "nothing happened" when writing unit test
body: <p>When writing unit test, Is there a simple way to ensure that nothing unexpected happened ? </p>
  
  <p>Since the list of possible side effect is infinite, adding tons of Assert to ensure that nothing changed at every steps seems vain and it obfuscate the purpose of the test.</p>
  
  <p>I might have missed some framework feature or good practice.<br>
  I'm using C#7, .net 4.6, MSTest V1.</p>
  
  <p>edit:
  The simpler example would be to test the setter of a viewmodel, 2 things should happen: the value should change and PropertyChanged event should be raised. 
  These 2 things are easy to check but now I need to make sure that other properties values didn't changed, no other event was raised, the system clipboard was not touched...</p>