1

我有一个订阅 TabItem 的 IsVisibleChanged 方法的附加行为。我想编写一个单元测试来验证此事件是否在附加行为中被订阅。

像这样的东西:

Assert.IsTrue(myTabItem.IsVisibleChanged != null);

我不能这样做,因为我的测试在 TabItem 类之外,所以它不能测试事件的相等性。

我也试过这个:

private class MyTabItem : TabItem
{
    public bool IsVisibleChangedNull()
    {
        return base.IsVisibleChanged == null;
    }
}

这也行不通。有没有人有一个很好的方法来测试这个?

4

1 回答 1

2

验证事件是否成功订阅的最简单方法是执行一些会触发事件的操作,并在事件处理程序中添加代码,以便测试成功运行它需要运行:

bool fired = false;

foo.SomeEvent += ()=> fired = true;
foo.DoSomethingToFireEvent();

Assert.IsTrue(fired);
于 2013-09-16T18:43:18.127 回答