我在类中定义了一个简单的事件,就像这样
class Request
{
protected virtual void OnStateChanged()
{
StateChanged?.Invoke(this, EventArgs.Empty);
}
public event EventHandler StateChanged;
public void Approve()
{
OnStateChanged();
}
}
我该如何使用xunit测试这个事件是否被触发?
我尝试了一行事件处理程序的实现。
bool eventRaised = false;
request.StateChanged += (obj, eventArgs) => eventRaised = true;
request.Approve();
Assert.True(eventRaised);
这个方法可以生效,但是有更好的方式吗?我还没有想到如何使用Assert.Raises()
Assert.Raises(request.StateChanged)
:D 而且一开始我还以为需要创建一个新的方法,现在只有4行(但也可以只有1行 :-)。 - Muflix