【问题标题】:Why some functions coverage is already 100% xcode 9为什么某些功能覆盖率已经 100% xcode 9
【发布时间】:2018-06-19 08:32:22
【问题描述】:

我最近开始为我的项目编写测试。在编写了一些测试后,我在覆盖率部分意识到我的一些类或函数的 覆盖率 超过 50%(如 AppDelegate中的 didFinishLaunchingWithOptions func >)没有,我为他们写了任何测试。 这个覆盖范围是从哪里来的?

【问题讨论】:

    标签: ios swift unit-testing xctest


    【解决方案1】:

    当测试运行时,它们正在启动您的应用。这意味着他们正在使用您的 UIApplicationDelegate 实现和 didFinishLaunchingWithOptions 运行,包括从中调用的所有方法。

    如果方法运行,则计算其覆盖率。如果没有分支,则覆盖率为 100%。

    相关:Unit Testing in Xcode, does it run the app? 基本上,您可以在测试时注入一个空的应用程序委托来避免这种行为。

    【讨论】:

    • 那么视图控制器中的 viewDidAppear 等函数的逻辑是否相同?
    • @MohammadKhakpaki 。我不明白你的问题。我告诉你,单元测试基本上是启动你的应用程序,然后他们在里面运行单元测试。
    • 我理解你。我的下一个问题是这种情况(100% 覆盖率)也发生在 viewControllers 中的 viewDidAppear 等功能上。您认为这种行为原因与您所说的相同吗?
    • @MohammadKhakpaki 是的。应用程序委托通常会实例化根控制器并将其显示在屏幕上。和你正常启动应用但根本不触屏时一样。
    • 我在运行测试时使用了不同的应用代理:qualitycoding.org/ios-app-delegate-testing
    猜你喜欢
    • 1970-01-01
    • 2017-03-30
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多