【问题标题】:Unit testing with UIWebView使用 UIWebView 进行单元测试
【发布时间】:2011-10-17 12:11:15
【问题描述】:

在单元测试中创建 UIWebView 时,我得到 EXC_BAD_ACCESS:

-(void)test1 {
    [[UIWebView alloc] initWithFrame:CGRectZero];  // EXC_BAD_ACCESS
}

是否有特殊配置来运行涉及 UIWebView 的单元测试?

我在 XCode 4.2 上使用 OCUnit/SenTest。

【问题讨论】:

  • 我在模拟器上调试时偶尔会遇到 EXC_BAD_ACCESS,但在设备上运行时从来没有。我怀疑一个错误:/
  • 我也有同样的问题!我以为只有我。也许你无法测试 UIWebView?

标签: iphone unit-testing xcode4 uiwebview ocunit


【解决方案1】:

显然,这只发生在直接对静态库进行单元测试时。很可能UIWebView 需要的任何东西都没有加载一个空的test host

在对应用进行单元测试时不会发生这种情况。

【讨论】:

  • 那么,有没有办法在静态库中使用 UIWebView 进行测试?我将 UIKit 添加到静态库的构建设置中,但在尝试运行测试时仍然会收到此 EXC_BAD_ACCESS。
【解决方案2】:

您可以创建一个仅用于运行单元测试的应用目标。在同一工作区中创建一个新的空应用程序并将其设置为单元测试目标的 Target。我将我的应用称为 TestRunner。

【讨论】:

  • 您能详细说明一下吗?这似乎是一个合理的解决方案。但是您的意思是同一个项目中的一个空应用程序还是有更好的方法来设置它?
  • 我添加了一个屏幕截图,显示了目标的配置位置。
  • 这是我不太明白的“空应用程序”部分。但是现在我已经让它工作了,我意识到你的意思是一个 shell 应用程序,它没有任何特性(空方法......等),它只是编译,然后允许它自己被我们的测试“定位”以运行.这完全有效,是一个可行的解决方案。谢谢!
  • 只是在这里跟进。我得到了完整的测试套件来工作。幸运的是,这个特定的项目是开源的,代码/方法可以在这个 repro 中找到:github.com/BlueKai/bluekai-ios-sdk/tree/master/sdk
  • 对我没有帮助。我收到GuardMalloc[UnitTestRunner-16080]: could not allocate new zone: (os/kern) no space available 而不是uardMalloc[xctest-16321]: could not allocate new zone: (os/kern) no space available
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 2011-11-16
  • 2015-05-28
  • 2012-05-23
  • 2010-11-30
  • 2010-12-31
  • 2018-05-06
相关资源
最近更新 更多