【问题标题】:Share global constants among different targets在不同目标之间共享全局常量
【发布时间】:2018-03-16 19:00:04
【问题描述】:

我在一个项目中有一些全局常量:

// 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] }
}

这当然行不通。在测试目标中找不到常量。如何使它们在该目标中可访问?

【问题讨论】:

  • 通过检查目标成员身份,确保声明常量的文件与测试目标共享

标签: ios swift xcode constants


【解决方案1】:

选择您已在其中声明常量的文件并更新其目标成员资格以使其可用于测试目标

这是一个示例代码

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.
}

【讨论】:

  • @badmintoncat : 永远欢迎好友 :) 如果有帮助,请考虑接受答案 :)
猜你喜欢
  • 1970-01-01
  • 2012-12-14
  • 1970-01-01
  • 2018-12-22
  • 1970-01-01
  • 2013-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多