2017-11-15 23 views
0

내 프로젝트에는 AdMob 배너 광고가 있습니다. AdMob 배너 광고는 광고를 성공적으로 가져올 때 전역 적으로 표시되어야합니다. 컨트롤러에는 bannerView와 UINavigationController가 포함 된 컨테이너 뷰가 있습니다.iOS | UITests에서 AdMob의 adViewDidReceiveAd 시뮬레이션/잡기

처음에는 BannerView가 컨트롤러 외부에 있습니다. adViewDidReceiveAd가 호출되면 bannerView가 컨트롤러보기 내부로 올라가고 컨테이너보기가 축소됩니다.

여기에 간단한 설명입니다

Explanation

지금, 나는이에 대한 UITests를 만들려하지만 난/시뮬레이션 adViewDidReceiveAd 및 didFailToReceiveAdWithError 대리자 메서드를 잡는 방법을 모르겠어요.

감사합니다.

답변

0

흠. 자신의 프로토콜 및 GADAdView 및 해당 대리자 (MockableAdView, 아마도) 래핑하는 개체를 만드는 작업을 포함하지 않는 네트워크 트래픽없이이 작업을 수행 할 수있는 방법을 알지 못하므로 두 번째 조롱 된 구현을 만들 수 있습니다. 이벤트는 당신이 좋아하는 방식입니다.

네트워크 요청과 관련되지 않은 경우 시험용 광고 단위 ID (test ads guide 참조)를 전달하려는 배너와 가짜 가비지 광고 단위 ID를 사용하여 실패 할 경우 배너를 요청할 수 있습니다 didFailToReceiveAdWithError를 보냅니다. 테스트 광고 단위 ID는 테스트를 불안정하게하는 것을 피하기 위해 충분히 안정적으로 수행되어야합니다.

+0

.exists() 함수는 window 외부에있는 경우에도 항상 bannerView에 대해 true를 반환합니다. 이거 좀 생각해? –

+1

@ ArdaOğulÜçpınar'isHittable()'을 대신 사용해 보셨습니까? – joern

+0

저는 좀 바쁘다. 나는 노력할 것이며, 가능한 빨리 알려줄 것입니다. 감사. –