UITests 助手 class 中的扩展与 Class

Extension vs Class in UITests helper class

我想为我的 UI 测试编写助手 class。

A.swift(测试用例class)

class A:XCTestCase {
//contains test cases, setUp() & tearDown()
...
}

B.swift(助手class)

方法一:

class B:XCTestCase {
//only helper functions, no setUp, no tearDown and no test cases

func sampleHelper() {
 ...
}
...
}

B().sampleHelper() 将调用 sampleHelper 函数(在 A 中使用时)

方法二:

extension XCTestCase {
//only helper functions, no setUp, no tearDown and no test cases
func sampleHelper() {
 ...
}
...
}

sampleHelper() 将调用辅助函数(在 A 中使用时)

问题:

写 helper classes 的最佳方法是什么?我知道扩展是静态的,但如果代码库很大,它真的会影响 memory/performance 吗?

如果您想向 XCTestCase 添加 一些自定义方法,使用 方法 #2 并放置整个扩展将 file/folder 分隔到您要使用自定义方法的地方附近的某个地方

另一方面,如果您想覆盖 XCTestCase 的方法,则不应使用 方法 #2,因为它违反了语言指令。您可以在 Apple Developer Guide and in .

中阅读更多详细信息