Я обычно подключаю анонимный метод в качестве прослушивателя событий и устанавливаю в нем проверяемое значение, например:
var sut = new SystemUnderTest();
bool eventWasRaised = false;
sut.PropertyChanged += (s, e) => eventWasRaised = true;
sut.AnyProperty = "new value";
Assert.IsTrue(eventWasRaised);
Это дает минимальное количество сантехники. Если вы хотите добавить некоторую очистку, вы можете создать переменную, содержащую обработчик события:
var sut = new SystemUnderTest();
bool eventWasRaised = false;
EventHandler eh = (s, e) => eventWasRaised = true;
sut.PropertyChanged += eh; // attach event handler
sut.AnyProperty = "new value";
Assert.IsTrue(eventWasRaised);
sut.PropertyChanged -= eh; // detach event handler