Objective-C 单元测试是不是需要头文件?

Posted

技术标签:

【中文标题】Objective-C 单元测试是不是需要头文件?【英文标题】:Are header files necessary for Objective-C Unit Tests?Objective-C 单元测试是否需要头文件? 【发布时间】:2010-11-08 20:03:08 【问题描述】:

Objective-C 单元测试是否需要头文件?

在使用 OCUnit、GHUnit 或 GTM 单元测试时,我看不到为单元测试创​​建头文件的意义。如果我决定更改我的单元测试,这感觉就像是我需要保持更新的另一个文件。

测试在一个文件中是自包含的,我不会在另一个测试文件中引用一组单元测试。

示例:SetupTests.m(使用 GHUnit)

// SetupTests.m
@interface SetupTests : GHTestCase

@end


@implementation SetupTests

- (void) testMath 
    GHAssertTrue((1+1)==3, @"Compiler isn't feeling well today :-(" );


- (void) testFirstUT 
    GHAssertEquals(1, 2, @"Should fail");

- (void) testSecondUT 
    GHAssertEquals(1, 1, @"Should pass");

@end

【问题讨论】:

XCode 5.0 在使用向导生成测试类时结合了头文件和实现文件。 很高兴知道。这可能不适用于 GHUnit 或其他 3rd 方测试。在我之前的测试中,最好只删除 GHUnit 的 .h。 【参考方案1】:

不,它们不是必需的。您是正确的,头文件的主要功能是将接口与实现分开,以便您可以在其他地方包含方法声明(等等)。

【讨论】:

以上是关于Objective-C 单元测试是不是需要头文件?的主要内容,如果未能解决你的问题,请参考以下文章

Objective-C 单元测试资源是不是会增加整体文件大小

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

Objective-C 是不是有任何基于非 Xcode 的命令行单元测试工具?

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

Xcode 4:为啥我不能将头文件添加到单元测试目标?

如何从 Swift 单元测试访问测试目标中存在的 Objective-C 代码?