我在一个项目中有一些全局常量:
// DemoACIs.swift
let DEMO_TEST_MENU_SCREEN_VIEW_ACI = "test_menu_screen_view"
let DEMO_TEST_MENU_SCREEN_TITLE_LABEL_ACI = "test_menu_screen_title_label"
let DEMO_TEST_MENU_SCREEN_BUTTON1_ACI = "test_menu_screen_button1"
etc.
我想在 Xcode 中的另一个基于 Swift 的目标(在本例中为 UI 测试目标)中引用它们 ...
// TestMenuScreenViewProxy.swift
import Foundation
import XCTest
class TestMenuScreenViewProxy
{
internal var view:XCUIElement { return app.otherElements[DEMO_TEST_MENU_SCREEN_VIEW_ACI] }
internal var titleLabel:XCUIElement { return app.textFields[DEMO_TEST_MENU_SCREEN_TITLE_LABEL_ACI] }
internal var button1:XCUIElement { return app.buttons[DEMO_TEST_MENU_SCREEN_BUTTON1_ACI] }
}
当然这行不通。在测试目标中找不到常量。我怎样才能使它们在该目标中可访问?
最佳答案
选择您在其中声明常量的文件并更新其目标成员资格以使其可用于测试目标
这是一个示例代码
import Foundation
class Constants {
static let test = "ABCD"
}
更改其目标成员资格以使其在测试目标中可用
现在在测试目标中
override func setUp() {
super.setUp()
let c = Constants.test
// Put setup code here. This method is called before the invocation of each test method in the class.
}
关于ios - 在不同目标之间共享全局常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46580862/