内部功能的单元代码测试

时间:2016-01-28 09:38:06

标签: ios xcode testing xctest

我是测试的新手,因此我对在某些代码部分测试内部功能感到磕磕绊绊。如何使用不同的输入测试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上的提示/解决方案的一些经验感兴趣。

1 个答案:

答案 0 :(得分:1)

如果有一种直接的方法来测试你想要的公共方法,那么就这样做。

如果没有,您可以选择:您只能将方法公开给测试代码。 这是常见做法,但我不建议这样做。它禁止其他选项......

或者,完全暴露该方法。如果这让你觉得不舒服,可能会有一堂课试图离开。提取课程(你要测试的方法以及其他任何有意义的方法。)你现在可以测试一下类。

当遇到不同的条件(例如不同的错误)很困难时,这尤其有用。提取,很容易。

进一步阅读:Testability, Information Hiding, and the Class Trying to Get Out