本地化字符串的单元测试代码覆盖率不是100%
本文关键字:100% 代码覆盖率 单元测试 字符串 本地化 | 更新日期: 2023-09-27 18:08:03
我们正在努力使我们的单元测试代码覆盖率尽可能接近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
我真的不希望在我的应用程序中添加数百个字符串来进行单元测试,但我也不希望它们影响覆盖率结果。
我如何从代码覆盖率分析中排除这些字符串,以便我获得更准确的重要测试图像?
您正在寻找ExcludeFromCodeCoverage属性。将此应用于您的代码将从代码覆盖结果中排除它。
[ExcludeFromCodeCoverage]
public string AllStr { get { return Localizer.GetString("Resources.Order.Status", "all", "all"); } }
问题是……为什么要添加这些来获得100%的代码覆盖率呢?100%的代码覆盖率并不能告诉开发人员关于项目的任何信息。这是向你的经理炫耀的亮点。