ios – 使用Swift代码的Objective C测试类

ios – 使用Swift代码的Objective C测试类,第1张

概述我的MyProjectName文件夹中有一个 swift协议IModelIdProvider. 我在MyProjectNameTests文件夹中创建了一个名为RemoteModelFactoryTest的 Objective-c单元测试类. 要做一些测试,RemoteModelFactoryTest必须实现IModelIdProvider协议. 当我#import“MyProjectName-Sw 我的MyProjectname文件夹中有一个 swift协议IModelIDProvIDer.
我在MyProjectnameTests文件夹中创建了一个名为RemoteModelFactoryTest的 Objective-c单元测试类.
要做一些测试,RemoteModelFactoryTest必须实现IModelIDProvIDer协议.

当我#import“MyProjectname-Swift.h”在我的Objective-C类中使用我的swift协议时,我得到一个没有找到的文件.

如果我将#import指令更改为#import“MyProjectnameTests-Swift.h”,则会找到该头,但不是我的协议(它在MyProjectname项目中定义,而不是在MyProjectnameTests项目中).

在*测试项目中使用Swift代码有什么特别之处吗?

解决方法 我知道它的额外的黑客和一切,但我做的和它的工作是复制公共标题从生成的“Project-Swift.h”和粘贴所需的.m文件的测试.

所以我复制了这样的东西:

SWIFT_CLASS("_TtC10Inventorum11ImageEntity")@interface ImageEntity : NSObject <FICEntity>@property (nonatomic,copy) Nsstring * imageID;@property (nonatomic) NSURL * retinaimageURL;@property (nonatomic) NSURL * nonRetinaimageURL;@property (nonatomic,Readonly) NSURL * imageURL;@property (nonatomic,Readonly,copy) Nsstring * UUID;@property (nonatomic,copy) Nsstring * sourceImageUUID;@property (nonatomic) RACSignal * rac_signalForImage;- (instancetype)init OBJC_DESIGNATED_INITIAliZER;- (NSURL *)sourceImageURLWithFormatname:(Nsstring *)formatname;- (FICEntityImageDrawingBlock)drawingBlockForImage:(UIImage *)image withFormatname:(Nsstring *)formatname;- (voID)objc_setType:(Nsstring *)type;@end

此外,我还复制了SWIFT_CLASS等的所有宏.我的测试正在构建和传递测试Swift代码.

BTW.不要忘记在Swift上公开测试课程和方法.

总结

以上是内存溢出为你收集整理的ios – 使用Swift代码的Objective C测试类全部内容,希望文章能够帮你解决ios – 使用Swift代码的Objective C测试类所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存