我们正在努力使我们的单元测试代码覆盖率尽可能接近100%。我们做得相当不错,但由于本地化字符串(设计为优雅地失败),结果看起来比实际情况要差得多。
以下是我的模型中未涵盖的代码示例:
#region strings
public string AllStr { get { return Localizer.GetString("Resources.Order.Status", "all", "all"); } }
public string ArchivedStr { get { return Localizer.GetString("Resources.Order.Status", "archived", "archived"); } }
public string Closed30Str { get { return Localizer.GetString("Resources.Order.Status", "closed30", "closed30"); } }
public string Closed90Str { get { return Localizer.GetString("Resources.Order.Status", "closed90", "closed90"); } }
public string GoStr { get { return Localizer.GetString("Resources.Global", "go", "go"); } }
public string OpenStr { get { return Localizer.GetString("Resources.Order.Status", "open", "open"); } }
public string OrderStatusStr { get { return Localizer.GetString("Resources.Order.Status", "orderStatus", "orderStatus"); } }
public string SelectedCustStr { get { return Localizer.GetString("Resources.Order.Status", "selectedCust", "selectedCust"); } }
public string StartTypingStr { get { return Localizer.GetString("Resources.Order.Status", "startTyping", "startTyping"); } }
public string TitleStr { get { return Localizer.GetString("Resources.Order.Status", "title", "title"); } }
#endregion
我真的不想在我的应用程序中添加数百个字符串来进行单元测试,但我也不希望它们影响覆盖率结果。
如何从代码覆盖率分析中排除这些字符串,以便更准确地了解重要的测试?
答案 0 :(得分:2)
您正在寻找ExcludeFromCodeCoverage Attribute。将其应用于您的代码会将其从代码覆盖率结果中排除。
[ExcludeFromCodeCoverage]
public string AllStr { get { return Localizer.GetString("Resources.Order.Status", "all", "all"); } }
问题确实是......为什么你会想要添加这些以获得100%的代码覆盖率? 100%的代码覆盖率不会告诉开发人员有关项目的任何信息。对你的经理来说,这是一个吹牛的要点。