- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
出于以下几个原因,我想在 UI 测试中覆盖 XCTestCase 的 init 函数:
我现在的样子是这样的:
import XCTest
class UITest: XCTestCase {
let app = XCUIApplication()
// Helper packages
var helper: UITestHelper!
override func setUp() {
super.setUp()
// Helper package instantiation
helper = UITestHelper(withTestCase: self, forApp: app)
continueAfterFailure = false
app.launch()
}
... tearDown(), tests ....
当我打电话时:
override init() {
super.init()
foo()
}
我得到 Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
最佳答案
init
不是 XCTestCase
的指定初始化程序。指定的初始化程序是 initWithInvocation:
。这需要一个 NSInvocation
,它在 Swift 中不可用。执行您所描述的操作的唯一方法是在 ObjC 中。
这没有记录,因为它不受支持。有可能实现您所描述的内容,但它可能会以微妙的方式中断,您应该探索其他解决方案来解决您的问题。
崩溃是 ObjC 初始化语义的副产品。每个 ObjC 类都必须响应 init
(因为它是从 NSObject
继承的)。然而,有相当多的 ObjC 对象在调用 init
时没有正确初始化。 (NSError
因这个问题而有些出名。)唯一知道的方法是通过文档。更复杂的 Swift 初始化系统是为了弥补 ObjC 初始化系统中的问题。
我会将您的更深层次的目标分解成单独的问题并询问如何解决它们(您还应该非常清楚地表明您在谈论 UI 测试;虽然您的代码表明了这一点,但文本中并不清楚)。确保您所描述的内容不会破坏 Xcode 10 的新并行测试功能和排序更改。
关于ios - 无法覆盖 Swift XCTestCase 中的 init() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50763777/
我有两个 XCTestCase 子类, @interface SessionTest : XCTestCase @interface UserTest : XCTestCase 在 SessionTe
我在 XCTestCase 类中有几个测试用例,例如测试 1、测试 2 等我只想在 testPrecondition 通过时运行 test1, test2。我怎样才能做到这一点? 最佳答案 您必须覆盖
我在场景中有 XCTestCase 在XCTestCase 主体中,有一组测试用例。我只希望所有测试用例在第一个测试用例成功完成后开始的问题(在我的特殊目的中,第一个测试用例响应一个 token 供其
我正在为我的一个模型进行单元测试,该模型使用对我的 rest api 的异步调用。用于请求我的 API 的方法是这样的: requestOnComplete:(void(^)())complete o
我有一个 XCTestCase,但如果测试失败 - 应用会立即退出。我确实将此行更改为以下内容: continueAfterFailure = true 失败后它仍然退出应用程序。有谁知道如何在 UI
我需要测试一个 UIViewController,它的行为取决于给它的参数(控件是根据网络服务调用在 viewDidLoad 中动态实例化的)。 我将能够运行相同的 XCTestCase 派生类并注入
不知何故,我的 XCtestCase 类无法访问我项目中的类。是否有一种方法来检查测试文件是否与项目链接?如果是,在哪里检查? 最佳答案 选择要在测试用例中导入或使用的文件。在 Identity In
我正在编写一个在线和离线功能分离的应用程序。在这些功能中,我使用 Reachability 来检查互联网连接,并且在每种情况下(在线/离线),它都会执行不同的工作。 现在,我被要求为这些业务逻辑编写测
我正在使用 XCode 的 XCTestCase 进行自动化 UI 测试,以衡量我的应用程序的性能。我目前有一个包含 25 000 个元素的 UITable,当尝试运行应该滑动此列表的测试时,它会一直
我正在为一个白标项目编写 UI 测试,其中每个应用程序都有一组不同的菜单项。测试点击每个菜单项并截取屏幕截图(使用 fastlane snapshot )。 目前这一切都发生在一个名为 testScr
为什么我的可选实例变量是 nil,而实际上我将它设置为非 nil? 代码: class FooTests: XCTestCase { var foo: Int? func test_A
我的 UI 测试失败了,因为测试会无休止地等待,直到应用空闲。我看不到后台有任何事情发生,例如加载微调器。 它只出现在一个选项卡上。所有其他选项卡均可点击,但屏幕 3 上的测试失败。我在屏幕 3 上捕
我正在尝试测试一段代码,我在其中检查一个帐户是否已经创建了一个 key 并将其存储在钥匙串(keychain)中。如果不是,它会调用启动 oauth 进程的方法。 我的第一个想法是覆盖我想在用户没有
无法使用 xcodebuild test -scheme DollarTests -project Dollar.xcodeproj -configuration Debug -sdk macosx
我正在尝试为使用 Web 服务 API 的 iOS 客户端编写一些单元测试。我想使用实际服务而不是模拟数据。 在运行所有测试之前,我需要获取一个 token 来对用户进行身份验证。我正在尝试使用类 s
背景 以下测试调用 XCTestCase 扩展的方法。目标: waitForElementExists 方法因元素存在而返回,或者 waitForElementExists 方法调用它的测试用例/se
在 XCTestCase 期间,我想以某种方式说“禁用互联网”,它就会被有效地禁用。然后我想以某种方式说“启用互联网”,它就会回来。关键是要看到我的应用程序在网络请求失败然后成功时表现正常。做这个的最
我调用了一个 Restful API。我需要等待调用完成才能验证结果。很常见的问题,但我找不到关于如何将其合并到 XCTestCase 中的合适答案。我已经看到信号量、锁、for 循环都弄乱了代码来运
我在 xcode 中遇到了一些奇怪的问题。 我有一个项目,我决定添加一些单元测试。 我创建了新的测试包并将我的应用添加为测试目标。只是认为我更改为自动生成的代码是: Build Settings /
我正在尝试对 UIViewController 中的按钮点击接线进行单元测试,但我发现即使正在运行的应用程序中的代码工作正常,这些测试也会失败。 我通过删除 View Controller 简化了失败
我是一名优秀的程序员,十分优秀!