ios – 从一个类别中测试私有方法的单元?

ios – 从一个类别中测试私有方法的单元?,第1张

概述我在NSString类上有一个包含私有帮助器方法的类别. 如果我可以在单元测试中使用这种方法,那将会很方便. 但是我很难揭露它. 当我在NSString上创建类扩展并在此声明方法时,该方法在单元测试中不可见.如果我在单独的头文件中创建类扩展,或者作为单元测试.m文件的一部分,则无关紧要. 看起来我在这里遗漏了一些东西. 有帮助吗? 通用单元测试指南会告诉您不要尝试测试您的私有方法.仅通过您的公共接 我在Nsstring类上有一个包含私有帮助器方法的类别.
如果我可以在单元测试中使用这种方法,那将会很方便.
但是我很难揭露它.
当我在Nsstring上创建类扩展并在此声明方法时,该方法在单元测试中不可见.如果我在单独的头文件中创建类扩展,或者作为单元测试.m文件的一部分,则无关紧要.

看起来我在这里遗漏了一些东西.

有帮助吗?

解决方法 通用单元测试指南会告诉您不要尝试测试您的私有方法.仅通过您的公共接口进行测试.私有方法只是一个实现细节,可以在重构时随时更改.您的公共接口应该非常稳定,并且将使用您的私有方法.

但是,如果您仍想测试您的私有类别方法,以下内容适用于我……

首先,您的类别:

UIImage Example.h

@interface UIImage (Example)    @end

UIImage Example.m

@implementation UIImage (Example)+ (Nsstring *)examplePrivateMethod{    return @"Testing";}@end

MyExampleTests.m

#import <XCTest/XCTest.h>#import "UIImage+Example.h"@interface UIImage (Example_Test)+ (Nsstring *)examplePrivateMethod;@end@interface MyExampleTests : XCTestCase@end@implementation MyExampleTests- (voID)testExample{    XCTAssertEqualObjects(@"Test",[UIImage examplePrivateMethod],@"Test should be test");}@end

基本上,在测试中重新声明您的私有方法在新类别中.但是,如上所述,这是为了测试而将私有方法公开,并将测试与您的实现相结合.

总结

以上是内存溢出为你收集整理的ios – 从一个类别中测试私有方法的单元?全部内容,希望文章能够帮你解决ios – 从一个类别中测试私有方法的单元?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1095303.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存