ios – XCTest中的Swift TyphoonBlockComponentFactory错误

ios – XCTest中的Swift TyphoonBlockComponentFactory错误,第1张

概述我正在使用 Swift与Typhoon和Cocoapods.一切顺利,直到我开始为我的Typhoon组件编写Integrationtest(根据 Typhoon-Example-App Test).我想以与在AppDelegate中相同的方式在Test setUp()方法中设置TyphoonFactory.当我执行测试时,我总是得到一个 TyphoonBlockComponentFactory a 我正在使用 Swift与typhoon和Cocoapods.一切顺利,直到我开始为我的typhoon组件编写Integrationtest(根据 Typhoon-Example-App Test).我想以与在AppDelegate中相同的方式在Test setUp()方法中设置typhoonFactory.当我执行测试时,我总是得到一个

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错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1073812.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存