2

Using the Test-driven development process with an iOS project, where should I place the test logic?

I have previously either put them directly into each implementation file, or in an auxiliary file per class - ie. petur.m is accompanied by peturTest.m - I feel this leads to bad structure so I wanted to hear how to do this properly.

4

1 回答 1

2

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

您可以使用苹果的文档来了解如何设置测试目标: 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

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

于 2013-09-14T05:15:57.457 回答