【问题标题】:Xcode 9.4.1 Code Coverage on 'guard' statementXcode 9.4.1 'guard' 语句的代码覆盖率
【发布时间】:2018-07-30 15:00:42
【问题描述】:

在 Xcode 9.4.1 的 Swift 4 项目中实现单元测试后,在获得 100% 的代码覆盖率时遇到了一些麻烦。

由于某种原因,当我在一个可失败的初始化程序中有一个 guard 语句时,我的代码覆盖率似乎总是为它显示 0,即使我确实对其进行了测试。 p>

I've created a demo project so you can see for yourselves.

如何让 Xcode 显示此代码包含单元测试?

我对整个单元测试方面还比较陌生,所以如果您有任何建议可以提供,或者有任何其他地方可以查看以了解它,我将不胜感激。

提前致谢。

/丹

【问题讨论】:

  • 您是否使用空字典进行测试?换句话说,你是在测试 guard 语句执行并返回 nil 的否定情况吗?
  • 你能显示你的代码覆盖率屏幕吗?
  • 首先你应该摆脱所有隐式展开的选项。不要发布屏幕截图发布您的实际代码。
  • @Guven 即使是空字典我也会遇到同样的问题
  • @LeoDabus 你能进一步解释一下“摆脱隐式展开的选项”吗?关于代码的发布,有一个指向显示问题的示例项目的 GitLab 链接。

标签: swift xcode unit-testing code-coverage


【解决方案1】:

它不能完全回答问题,但如果您将 class 替换为 struct(从参考空间迁移到值空间),您将达到 100% 的测试覆盖率。

太奇怪了!

【讨论】:

    猜你喜欢
    • 2016-11-29
    • 2017-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多