【发布时间】:2014-07-28 11:48:25
【问题描述】:
我刚刚升级到 Xcode 6 beta 4,其中 Swift 编译器现在支持 access modifiers。
这给我带来了问题,因为我的单元测试现在无法编译(由于类不是公开的)。
简单的解决方案当然是将所有测试的类公开,但这感觉像是一种 hack(我个人的偏好是即使在非公开类上也编写单元测试)。
在 .NET 和 Java 中,您通常可以允许单元测试程序集级别(或 Java/OSGi 中的包级别)从单元测试程序集访问被测程序集。我不明白如何在 Swift 中做类似的事情。我真的必须公开我的所有课程以对它们进行单元测试吗?
【问题讨论】:
-
我并不介意,因为通常我只想测试公共 API。测试每个类和每个方法都是一种浪费。
-
最终这是一个哲学问题,并且有不同的意见/策略。我不会测试所有东西,但我会尽量保持我的公共 API 尽可能小。我更喜欢类似 IoC 的解决方案,但在这种应用程序中,这感觉完全是矫枉过正。
标签: unit-testing swift