Xcode 7:应用程序测试和UI测试之间的鸿沟是不可分割的?

Xcode 7:应用程序测试和UI测试之间的鸿沟是不可分割的?,第1张

概述Xcode 7†具有直接测试UI的新方法,包括一个新的测试目标“iOS UI测试包”(或“OS X”). 在UI测试目标中,似乎没有内置的访问模型或组成您的应用程序的类.例如. [UIApplication sharedApplication]不能从您的UI测试中调用. 这意味着“应用程序测试”和“UI测试”存在于可能不可跨越的差距. 如here所述: The problem is that Xc Xcode 7†具有直接测试UI的新方法,包括一个新的测试目标“iOS UI测试包”(或“OS X”).

在UI测试目标中,似乎没有内置的访问模型或组成您的应用程序的类.例如. [UIApplication sharedApplication]不能从您的UI测试中调用.
这意味着“应用程序测试”和“UI测试”存在于可能不可跨越的差距.

如here所述:

The problem is that Xcode’s UI testing does not allow access to the actual app.

问题:

这个鸿沟能弥合吗?如果是这样,具体如何使用构建和链接器设置以及可能在github上运行的xcodeproj.
>在Apple文档中可以找到这个鸿沟的明确声明.

†在编写时,beta软件.

解决方法 黑盒测试

UI测试是一个black-box testing框架.你不应该知道你正在测试的代码的实现.

例如,您应该只关心标签上的值更改,而不是控制器将正确的数据传递给视图.您可以从应用程序的角度来看待用户界面测试.她不关心ItemsVIEwController的工作原理(甚至是否存在),那么为什么UI测试呢?

让它“工作”

话虽如此,我明白你的沮丧.如果您可以启动视图控制器,然后点击UI测试并进行断言,那将是巨大的.但是,从Beta 5起,这是不可能的.

有趣的是,您可以在UI测试的顶部使用简单的@testable导入Modulename创建应用程序对象的实例.请注意,您无法通过.tap()方法实际进行交互,因为它是一个UI *类,而不是XCUI *类.

考虑甜甜圈是应用程序的模块名称.

import XCTest@testable import Donutclass DonutUITests: XCTestCase {    let app = XCUIApplication()    overrIDe func setUp() {        continueAfterFailure = false        app.launch()    }    func testItemsVIEwController() {        let controller = ItemsVIEwController()        controller.addItembutton.tap() // <---- UIbutton does not respond to tap()!    }}
总结

以上是内存溢出为你收集整理的Xcode 7:应用程序测试和UI测试之间的鸿沟是不可分割的?全部内容,希望文章能够帮你解决Xcode 7:应用程序测试和UI测试之间的鸿沟是不可分割的?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1096210.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存