本地化字符串的单元测试代码覆盖率不是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

我真的不希望在我的应用程序中添加数百个字符串来进行单元测试,但我也不希望它们影响覆盖率结果。

我如何从代码覆盖率分析中排除这些字符串,以便我获得更准确的重要测试图像?

本地化字符串的单元测试代码覆盖率不是100%

您正在寻找ExcludeFromCodeCoverage属性。将此应用于您的代码将从代码覆盖结果中排除它。

[ExcludeFromCodeCoverage]
public string AllStr { get { return Localizer.GetString("Resources.Order.Status", "all", "all"); } }

问题是……为什么要添加这些来获得100%的代码覆盖率呢?100%的代码覆盖率并不能告诉开发人员关于项目的任何信息。这是向你的经理炫耀的亮点。