我是测试的新手,因此我对在某些代码部分测试内部功能感到磕磕绊绊。如何使用不同的输入测试privateParseAndCheck和/或privateFurtherProcessing功能,但我不想将它作为公共函数?
-(BOOL) publicFunction()
{
//some stuff with network
NSError* error;
NSData* data = load(&error);
//now I got data and parse and check
BOOL result = privateParseAndCheck(data, error, ...);
if( result ) {
privateFurtherProcessing();
}
return result;
}
重新编写代码解决方案吗?我也对Xcode Server上的提示/解决方案的一些经验感兴趣。
答案 0 :(得分:1)
如果有一种直接的方法来测试你想要的公共方法,那么就这样做。
如果没有,您可以选择:您只能将方法公开给测试代码。 这是常见做法,但我不建议这样做。它禁止其他选项......
或者,完全暴露该方法。如果这让你觉得不舒服,可能会有一堂课试图离开。提取课程(你要测试的方法以及其他任何有意义的方法。)你现在可以测试一下类。
当遇到不同的条件(例如不同的错误)很困难时,这尤其有用。提取,很容易。
进一步阅读:Testability, Information Hiding, and the Class Trying to Get Out