typhoonBlockComponentFactory assertIsAssembly:] + 244: ERROR: MyApp.MyAssembly is not a sub-class of typhoonAssembly
typhoon引发的错误(在引擎盖下使用kindOfClass方法.)相同的代码在AppDelegate中完美运行,我无法弄清楚什么是错误的.
为了验证这种行为,我在booth类中实现了isKindOfClass检查(参见下面的代码):
> AppDelegate – >真正
> MyComponentTest – >假
有人可以帮助我吗?
多谢!
Podfile
inhibit_all_warnings!target "MyApp" dopod 'typhoon','2.1.0'endtarget "MyAppTests" dopod '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 XCTestimport MyAppclass 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 }}解决方法 为了其他用户的利益:
正如在Typhoon’s Github上讨论的那样,当typhoon CocoaPod包含在app目标和测试目标中时,会发生此错误.
由于应用程序样式测试(设置了TEST_HOST标志)现在几乎无处不在,因此测试目标会自动从主应用程序目标继承依赖关系.对于Swift,使用名称间距,如果它们在测试目标中重复,则事情可能会中断.
因此,解决方案是从测试目标中删除typhoon以及应用程序的任何其他依赖项,因为这些是继承的.您仍然可以包含特定于测试的依赖项,如下所示:
target :tests,:exclusive => true do pod 'Ocmockito' pod 'AnotherTestlibrary' #etc . . end总结
以上是内存溢出为你收集整理的ios – XCTest中的Swift TyphoonBlockComponentFactory错误全部内容,希望文章能够帮你解决ios – XCTest中的Swift TyphoonBlockComponentFactory错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)