2016-06-28 18 views
-2

Xcode 7.3.1のiosアプリケーションで作業しています。すぐにiOSアプリケーションでユニットテストを開始しようとしています。私はappDelegateを使用しているものにアクセスすることができません。私は次のことから解決しようとしました。しかし、まだ同じ問題が発生しています。 link1 link2XCTestでApp DelegateをApp Delegateにキャストできない

私はユニットテストを実行中ですが、次の問題が発生しています。私のサンプルコードでは、私のLoginPageControllerで

import UIKit 
import XCTest 

@testable import MyAppName 

class FreshBossTests: XCTestCase { 

    var login:LoginPageController! 
    override func setUp() { 
     super.setUp() 
     login = LoginPageController() 
    } 
    override func tearDown() { 
     super.tearDown() 
    } 
    func testlogin() { 
     let email:String! = "[email protected]" 
     if login.isValidEmail(email) == true { 
      XCTAssertEqual(true, true,"email in valid format") 
     } 
    } 

ある 、私は次のコードを持っています。その線で

let appDelegate:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 

のみマットとして

Could not cast value of type 'MyAppName.AppDelegate' (0x10dc09e80) to 'MyAppNameTests.AppDelegate' (0x11cc190c0). 
+0

あなたの関連するコードを示して? –

+0

あなたのアプリはMyAppNameと呼ばれていますか?本当に?本当に? – matt

+0

いいえ..私はサンプルの名前を与えました。 – Madhumitha

答えて

0

のようなエラーを取得しています、お勧めProductModuleName.AppDelegateのようにそれを使用しています。だからあなたの場合には、それは

let appDelegate = UIApplication.sharedApplication().delegate as! MyAppName.AppDelegate 

MyAppNameだろうアプリのターゲット・モジュールの名前ではなく、テスト対象でなければなりません。あなたの代わりに「ログイン= LoginPageController()」 これらの行を使用し

let storyBoard = UIStoryboard(name: "Main", bundle: NSBundle(forClass: self.dynamicType)) 
    login = storyBoard.instantiateViewControllerWithIdentifier("LoginView") as! LoginPageController 

のセットアップ()関数では、アプリのターゲットビルド設定に

+0

私はsame.But "宣言されていないタイプのMyAppNameの使用"このエラーを取得しました – Madhumitha

+0

ターゲット構築設定で製品モジュール名を確認してください。 'MyAppName'がモジュール名であることを確認してください。アプリ名とモジュール名は異なる場合があります –

+0

はい。確認しました。どちらも同じです。 – Madhumitha

0

モジュール名検索Product Module Nameについて不明な点がある場合は、私は同じ問題に直面しましたこれが私を助けました。

0

プロダクションモジュールは、XCTestファイルの上部にインポートできます。

@testable import MyAppName

そして、これはあなたのようにキャストできるようになります:

スウィフト3

let appDelegate = UIApplication.shared.delegate as! MyAppName.AppDelegate

関連する問題