如何将实例变量或属性添加到 XCTestCase?
Posted
技术标签:
【中文标题】如何将实例变量或属性添加到 XCTestCase?【英文标题】:How to add instance variables or properties to an XCTestCase? 【发布时间】:2014-05-07 12:37:02 【问题描述】:我刚刚了解到,我必须在 Objective-C 中的 头文件 中声明实例变量和属性。所以现在我想将实例变量添加到我的XCTestCase
子类中——但事实证明,XCTestCases 没有头文件。
如何在测试用例中声明实例变量?
【问题讨论】:
如下面的回答,您可以在类扩展中声明属性和 ivars。请务必查看苹果的文档以了解实例变量和属性之间的区别。 答案是——不要使用实例变量,使用属性。 @JuJoDi 但我的问题同样适用于实例变量和属性——它是关于它们可以/必须在哪里声明,而不是两者中的任何一个都应该是首选? @MartinW 编辑了标题以反映您的评论。 @JuJoDi 这样更好。谢谢。 【参考方案1】:您根本不必在头文件中声明它们。实例变量和属性通常添加到实现文件的私有类别中:
@interface MyClass ()
BOOL _someVar;
@property NSString *someOtherVar;
- (void)_aPrivateMethod:(id)something;
@end
@implementation MyClass
...
@end
【讨论】:
我可以直接将实例变量添加到@interface MyClass : XCTestCase …
,还是必须在下面添加第二个@interface MyClass () …
才能添加它们?我试过了,两种变体似乎都有效……
是的,两者都可以。我在回答中概述的方法使实例变量/属性完全私有,但是,因为没有其他类可以看到它们。以上是关于如何将实例变量或属性添加到 XCTestCase?的主要内容,如果未能解决你的问题,请参考以下文章