如何在iOS上对不应公开公开的功能进行单元测试?

时间:2014-09-09 22:46:35

标签: ios objective-c iphone unit-testing swift

我有一个包含顶级字典的plist文件,该字典包含一个字符串数组。

我想测试一下:

  1. 字典不是nil
  2. 数组不是nil
  3. 并且数组中至少有一个有效的字符串对象
  4. 我让这些单元测试运行得很好。非耦合。但问题是我必须将类函数公开,以便Xcode XCTest能够测试它们。这3个函数只是辅助函数,用于获取我们需要的实际数据。

    如何在保持测试的同时对这些帮助函数使用适当的可见性?没有人需要知道这三个功能,但我希望它们经过测试。

1 个答案:

答案 0 :(得分:1)

这有两个可靠的选项:

  1. 创建名为.h的第二个MyClass_TestHelpers.h文件,您可以在其中声明所需的方法。
  2. 在类似于' TestHelpers'。
  3. 的类上创建一个类别

    两者基本上都是一样的:在另一个.h文件中声明方法。在任何一种情况下,只需在测试类中包含.h文件即可。这样,方法只会暴露给您的测试。