기존 C++ 라이브러리 의존성이있는 iOS 어플리케이션 테스트를 작성하려고합니다. 레거시 라이브러리에는 초기화 루틴과 정적 변수가 있으며이 변수는 앱주기마다 한 번 실행/설정해야합니다.iOS Application 정적 라이브러리 초기화 테스트
제대로 작동하는 테스트 대상을 만들었습니다. 내 테스트 대상은 내 응용 프로그램을 번들 로더를 통해 테스트 호스트로 사용하도록 설정됩니다. 그러면 iOS 앱이 실행 된 다음 [SenTestCase invoke test]가 테스트를 실행합니다. 이 설정을 감안할 때 응용 프로그램에서 라이브러리를 초기화하고 테스트가 "라이브러리가 이미 초기화되었습니다"상태에서 실행되도록 할 수 있기를 바랍니다. Apple 응용 프로그램 테스트 패러다임에 맞는 것 같습니다. 그러나 테스트가 실행될 때 앱 실행 중에 초기화되는 기존 라이브러리의 정적 변수는 NULL입니다. 변수를 재설정하는 사용자 코드는 없습니다.
내 애플리케이션 테스트가 내 앱의 정적 변수에 액세스 할 것으로 기대하고 있습니다. 이를 허용하도록 구성 할 수있는 것이 있습니까? 내가 놓친 게 있니?
귀찮은 정적 변수는 링크 된 C++ 라이브러리에 있습니다. 앱 및 유닛 테스트는 동일한 애플리케이션 범위를 공유하지 않는 것 같습니다.
앱에 액세스 할 수있는 다른 단위 테스트가 있습니까? –
다른 모든 테스트에서 앱에 액세스 할 수 있습니다. 문제를 일으키는 것은 C++ 라이브러리의 정적 변수 일뿐입니다. – HatAndBeard
나는 이것에 또한 달리고있다. 문제는 정적 변수의 두 버전이 생성된다는 것입니다. 테스트 바이너리에 1 개, 응용 프로그램 바이너리에 1 개. 명확히하기 위해, 나는 이것이 C++뿐만 아니라 모든 정적 변수와 관련된 문제라고 생각합니다. – Tylerc230