【问题标题】:Application Tests VS Logic Tests应用程序测试 VS 逻辑测试
【发布时间】:2011-10-07 12:58:24
【问题描述】:

既然应用程序测试现在可以在 Xcode 的模拟器上运行,那么除了可能节省一点执行时间之外,仍然将您的测试分为逻辑测试和应用程序测试还有什么好处?

根据Apple docs的区别:

  • 逻辑测试。这些测试在洁净室环境中检查代码的正确功能;也就是说,您的代码不在应用程序内运行。逻辑测试让您可以将非常具体的测试用例放在一起,以便在非常精细的级别(类中的单个方法)或作为工作流的一部分(一个或多个类中的几个方法)来练习您的代码。您可以使用逻辑测试对代码进行压力测试,以确保它在运行应用程序中不太可能出现的极端情况下正常运行。这些测试可帮助您生成健壮的代码,这些代码在以您未预料到的方式使用时可以正常工作。逻辑测试基于 iOS Simulator SDK;但是,该应用程序并未在 iOS 模拟器中运行:正在测试的代码在相应目标的构建阶段运行。

  • 应用程序测试。这些测试检查您的代码在正在运行的应用程序中的功能。您可以使用应用程序测试来确保您的用户界面控件(出口和操作)的连接保持在原位,并且当您在应用程序上工作时,您的控件和控制器对象与您的对象模型一起正常工作。由于应用程序测试仅在设备上运行,因此您还可以使用这些测试来执行硬件测试,例如获取设备的位置。

【问题讨论】:

标签: xcode cocoa-touch unit-testing xcode4


【解决方案1】:

与逻辑测试相比,应用程序测试实际上用于两种不同的事情:

逻辑测试/单元测试用于测试一种或几种方法的非常小的行为,例如“鉴于我这样创建对象,某个属性的值是否符合我的预期?”

应用程序测试然而用于测试大局,例如“当我点击某个表格视图单元格时,我是否在详细视图中获得正确的数据?”

【讨论】:

  • 当然,这是真的,但是将这些测试分成不同的测试文件/包可以得到什么?
  • 我们谈论的是同一件事。当我谈到逻辑测试时,我主要指的是 Instruments 中的 UIAutomation 测试和 Xcode(OCUnit 等)中的应用程序测试和单元测试。
  • 嗯...编写小的、详细的测试作为逻辑测试更容易,因为您更接近代码和编写objective-c代码,即使您可以将其中一些作为应用程序测试.反过来也是如此。这变成了使用正确工具来完成手头任务的问题。
  • 好的,在这种情况下,真正的区别只是逻辑测试在模拟器上运行,这使得它更适合应该经常运行的测试,例如每个构建。应用程序测试在设备上运行,这使得它有点麻烦,因为需要连接设备。好处是您可以访问仅限设备的功能,例如位置。所以应用程序测试更强大但不太方便。
  • 逻辑测试的主要优势之一是速度。您没有在应用中启动模拟器和其他启动代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多