Objective-C 中的单元测试私有类

Posted

技术标签:

【中文标题】Objective-C 中的单元测试私有类【英文标题】:Unit test private class in Objective-C 【发布时间】:2013-09-09 22:53:22 【问题描述】:

如何在 Objective-C 中对 私有类 进行单元测试?当类的@interface@implementation 都包含在.m 实现文件中时是否可能?

项目限制不允许将私有类的接口重构为自己的header。

这是我想测试的整个私人课程,而不是a private method of a public class。

【问题讨论】:

【参考方案1】:

显然,在测试文件中复制私有接口就足够了。该死,Objective-C 很危险!

【讨论】:

如果允许,您可以使用#define 来#import .m。类似#define INTERFACE_ONLY,然后你使用#ifdef 使@implementation 部分不被导入。 在 C 中不一样吗? (这是一个真正的问题,而不是一个修辞问题)

以上是关于Objective-C 中的单元测试私有类的主要内容,如果未能解决你的问题,请参考以下文章

java中的单元测试私有和静态方法

无法在快速单元测试中使用 Objective-C 类

使用 XCTest 在 Objective-C 静态库中创建测试用例

如何使用私有构造函数对类进行单元测试?

在 Swift 中对私有变量进行单元测试

用于单元测试 Objective-C XCTest 的 .m 文件中的访问变量定义