1) Да, это имеет смысл. Если требование состоит в том, что событие не должно запускаться при определенных обстоятельствах, тогда должен быть тест для него.
2) Примерно так:
[Fact]
public void PropertyChangedNotFired()
{
Box box = new Box();
int fireCount = 0;
box.PropertyChanged += (s, e) => ++fireCount;
box.Mark = Marking.Tick;
Assert.Equal(1, fireCount); // Sanity check. Not strictly speaking following AAA
box.Mark = Marking.Tick;
Assert.Equal(1, fireCount); // If we get 2, event has wrongly fired
}
Это предполагает перечисление (что вы не показали) что-то вроде:
public enum Marking { None, Tick, Cross }