【发布时间】:2012-01-12 21:16:18
【问题描述】:
在这段小代码中:
public event StabilityChangedHandler StabilityChanged;
267 private void RaiseStabilityChanged()
{
if (StabilityChanged != null)
{
1 StabilityChanged();
}
275 }
NCover 仅报告此方法的 50% 分支覆盖率。但是,我知道无论处理程序是否连接到 StabilityChangedEvent,都会调用我的 RaiseStabilityChanged()。在左侧,我放置了 NCover 报告的命中数。
为什么 NCover 可能会报告 50% 而不是 100%?
【问题讨论】:
-
作为旁注,通常实现事件以便订阅/取消订阅是线程安全的。所以你应该把
StabilityChanged复制到一个局部变量中,然后检查并调用那个变量。
标签: c# unit-testing events code-coverage ncover