2017-10-05 7 views
1

내가 프로젝트의 몇 가지 전역 상수가 있습니다다른 목표들 사이에서 전역 상수를 공유

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

을 내가 (이 경우에는 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] } 
} 

물론 이것은 작동하지 않습니다. 테스트 대상에서 상수를 찾을 수 없습니다. 어떻게 그 목표물에 접근 가능하게 할 수 있습니까?

+2

타겟 멤버십을 확인하여 상수로 선언 된 파일이 있는지 확인하십시오. –

답변

3

당신이 당신의 상수를 선언하는 파일을 선택하고 테스트 대상 다음

enter image description here

에 사용할 수 있도록 목표 구성원 업데이트는

이 목표를 변경 샘플 코드

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

힌트 @Sandeep에 감사드립니다! – BadmintonCat

+1

@badmintoncat : 항상 친구를 환영합니다 :) 도움이된다면 대답 수락을 고려하십시오 :) –