我应该在哪里进行单元测试?

时间:2013-09-13 19:31:12

标签: ios objective-c unit-testing

Test-driven development process与iOS项目一起使用,我应该在哪里放置测试逻辑?

我之前要么将它们直接放入每个实现文件中,要么将它们放在每个类的辅助文件中 - 即。 petur.m伴随着peturTest.m - 我觉得这导致了糟糕的结构,所以我想听听如何正确地做到这一点。

1 个答案:

答案 0 :(得分:2)

典型的策略是为单元测试代码设置单独的目标。 您不希望在实现文件中包含单元测试,因为这只会增加必须安装的应用程序的大小。此外,您经常会有测试代码,这些代码可能会将对象置于错误状态,或者暴露出不应该被任何人使用的内容。您不希望团队中的某个人意外使用他们认为是真正方法的单元测试方法。

您可以使用Apple的文档来了解如何设置测试目标: https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/UnitTesting/02-Setting_Up_Unit_Tests_in_a_Project/setting_up.html#//apple_ref/doc/uid/TP40002143-CH3-SW1

为单元测试设置额外目标后,所有单元测试代码都将包含在此目标中,但不会包含在可交付目标中。典型的模式是为应用程序中的每个可测试类提供一个或多个单元测试类。如果您需要公开任何其他功能(在对象上公开方法或属性以设置状态变量等),那么我建议将它们作为生产类的类别编写。