Objective-C中的@testable模拟

时间:2017-01-06 11:06:23

标签: objective-c swift unit-testing

我想在Objective-C中为我的框架编写单元测试,这是用swift编写的。有没有办法从Objective-C测试中访问框架的内部API?

1 个答案:

答案 0 :(得分:2)

如果您有一个班级Foo并且想要使用内部API,例如方法- (void) bar;您只需在测试中创建扩展标头Foo+ExposePrivate.h(无需创建实现Foo+ExposePrivate.m)并将其导入需要的位置:

#import "Foo.h"

@interface Foo(ExposePrivate)

- (void) bar;

@end

如果您的班级Foo本身就是内部的,请添加重复的班级声明:

@interface Foo: SomeFooBase<SomeFooProtocol>
@end

@interface Foo(ExposePrivate)

- (void) bar;

@end