如何将实例变量或属性添加到 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?的主要内容,如果未能解决你的问题,请参考以下文章

如何在静态 objc 库中使用 XCTestcase

如何添加环境变量或路径添加到系统的Path里面

将对象添加到实例变量数组

XCTestCase 异步

如何添加环境变量或路径添加到系统的Path里面

如何在 XCTestCase 中测试 NSPersistentDocument?