私は Typhoon と Cocoapods で Swift を使用しています。Typhoon コンポーネントの Integrationtest ( Typhoon-Example-App Testによる) を書き始めるまで、すべてがうまくいきました。 で行ったのと同じ方法でTyphoonFactory
、 Testメソッドでをセットアップしたかったのです。テストを実行すると、常にsetUp()
AppDelegate
TyphoonBlockComponentFactory assertIsAssembly:] + 244: エラー: MyApp.MyAssembly は TyphoonAssembly のサブクラスではありません
Typhoon によってスローされたエラー (kindOfClass
ボンネットの下でメソッドを使用しています)。同じコードが で完全に機能しておりAppDelegate
、何が問題なのかわかりません。
この動作を確認するためisKindOfClass
に、ブース クラスにチェックを実装しました (以下のコードを参照)。
- AppDelegate -> true
- MyComponentTest -> false
誰かが私をさらに助けてくれますか?ありがとう!
PodFile
inhibit_all_warnings!
target "MyApp" do
pod 'Typhoon', '2.1.0'
end
target "MyAppTests" do
pod 'Typhoon', '2.1.0'
end
MyAssembly.swift
public class MyAssembly : TyphoonAssembly{
//Some definitions
}
AppDelegate.swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
…
var assembly : MyAssembly = MyAssembly()
//Always returns „true“
println("Is type of class: \(assembly.isKindOfClass(TyphoonAssembly))")
…
}
MyComponentTest.swift
import XCTest
import MyApp
class MyComponentTest: XCTestCase {
override func setUp() {
super.setup()
var assembly : MyAssembly = MyAssembly()
//Always returns „false“!
println("Is type of class: \(assembly.isKindOfClass(TyphoonAssembly))")
//Error is thrown „MyApp.MyAssembly is not a sub-class of TyphoonAssembly“
var factory : TyphoonComponentFactory = TyphoonBlockComponentFactory(assembly: assembly) as TyphoonComponentFactory
}
}